Browse Source

Added ActionModel unit test

Fixed ActionModel NPEs when looking up values that hadn't been set

git-svn-id: http://svn.dmdirc.com/trunk@2478 00569f92-eb28-0410-84fd-f71c24880f
tags/0.5.5
Chris Smith 16 years ago
parent
commit
ef19d5a368
2 changed files with 113 additions and 2 deletions
  1. 2
    2
      src/com/dmdirc/actions/ActionModel.java
  2. 111
    0
      test/com/dmdirc/actions/ActionModelTest.java

+ 2
- 2
src/com/dmdirc/actions/ActionModel.java View File

@@ -159,7 +159,7 @@ public class ActionModel {
159 159
      * @return The triggers used by this action
160 160
      */
161 161
     public ActionType[] getTriggers() {
162
-        return triggers.clone();
162
+        return triggers == null ? triggers : triggers.clone();
163 163
     }
164 164
 
165 165
     /**
@@ -195,7 +195,7 @@ public class ActionModel {
195 195
      * @return The commands that will be executed if this action is triggered
196 196
      */
197 197
     public String[] getResponse() {
198
-        return response.clone();
198
+        return response == null ? response : response.clone();
199 199
     }
200 200
 
201 201
     /**

+ 111
- 0
test/com/dmdirc/actions/ActionModelTest.java View File

@@ -0,0 +1,111 @@
1
+/*
2
+ * Copyright (c) 2006-2007 Chris Smith, Shane Mc Cormack, Gregory Holmes
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.actions;
24
+
25
+import java.util.ArrayList;
26
+import java.util.List;
27
+import org.junit.Test;
28
+import static org.junit.Assert.*;
29
+
30
+public class ActionModelTest {
31
+
32
+    /*@Test
33
+    public void trigger() {
34
+    }*/
35
+
36
+    @Test
37
+    public void testConditions() {
38
+        final ActionModel model = new ActionModel("group", "name");
39
+        
40
+        assertTrue(model.getConditions().isEmpty());
41
+        
42
+        final List<ActionCondition> conds = new ArrayList<ActionCondition>();
43
+        
44
+        model.setConditions(conds);
45
+
46
+        assertEquals(conds, model.getConditions());
47
+    }
48
+
49
+    @Test
50
+    public void testTriggers() {
51
+        final ActionModel model = new ActionModel("group", "name");
52
+
53
+        assertNull(model.getTriggers());
54
+
55
+        final ActionType[] triggers = {CoreActionType.CHANNEL_ACTION};
56
+
57
+        model.setTriggers(triggers);
58
+
59
+        assertEquals(triggers, model.getTriggers());
60
+    }
61
+
62
+    @Test
63
+    public void testNewFormat() {
64
+        final ActionModel model = new ActionModel("group", "name");
65
+
66
+        assertNull(model.getNewFormat());
67
+
68
+        model.setNewFormat("");
69
+
70
+        assertEquals("", model.getNewFormat());
71
+
72
+        model.setNewFormat("newformat");
73
+
74
+        assertEquals("newformat", model.getNewFormat());
75
+    }
76
+
77
+    @Test
78
+    public void testResponse() {
79
+        final ActionModel model = new ActionModel("group", "name");
80
+
81
+        assertNull(model.getResponse());
82
+
83
+        final String[] newResponse = {"a", "b", "c"};
84
+
85
+        model.setResponse(newResponse);
86
+
87
+        assertEquals(newResponse, model.getResponse());
88
+    }
89
+
90
+    @Test
91
+    public void testGroup() {
92
+        final ActionModel model = new ActionModel("group", "name");
93
+
94
+        assertEquals("group", model.getGroup());
95
+
96
+        model.setGroup("group2");
97
+
98
+        assertEquals("group2", model.getGroup());
99
+    }
100
+
101
+    @Test
102
+    public void testName() {
103
+        final ActionModel model = new ActionModel("group", "name");
104
+
105
+        assertEquals("name", model.getName());
106
+
107
+        model.setName("name2");
108
+
109
+        assertEquals("name2", model.getName());
110
+    }
111
+}

Loading…
Cancel
Save