1
2
3
4
5
6
7
8 package net.kwfgrid.gworkflowdl;
9
10
11 import junit.framework.Assert;
12 import junit.framework.Test;
13 import junit.framework.TestSuite;
14 import net.kwfgrid.gworkflowdl.structure.*;
15
16 /***
17 * Edge test.
18 */
19 public final class TransitionTest extends AbstractTestCase {
20 /***
21 * Create the test case.
22 *
23 * @param testName name of the test case
24 */
25 public TransitionTest(String testName) {
26 super(testName);
27 }
28
29 /***
30 * @return the suite of tests being tested
31 */
32 public static Test suite() {
33 return new TestSuite(TransitionTest.class);
34 }
35
36 public static void addReadPlace(Transition t, Place p) {
37 Edge e = Factory.newEdge();
38 e.setPlace(p);
39 t.addReadEdge(e);
40 }
41
42 public static void addInPlace(Transition t, Place p) {
43 Edge e = Factory.newEdge();
44 e.setPlace(p);
45 t.addInEdge(e);
46 }
47
48 public static void addWritePlace(Transition t, Place p) {
49 Edge e = Factory.newEdge();
50 e.setPlace(p);
51 t.addWriteEdge(e);
52 }
53
54 public static void addOutPlace(Transition t, Place p) {
55 Edge e = Factory.newEdge();
56 e.setPlace(p);
57 t.addOutEdge(e);
58 }
59 /***
60 * generation of AnalysisTransition test createDataToken
61 *
62 * @param description expression of Edge
63 * @param id Place ID
64 * @param inP Places of inEdges
65 * @param outP Places of outEdges
66 * @return createDataToken AnalysisTransition
67 */
68 public static Transition example(String description, String id, Place[] readP, Place[] inP, Place[] writeP, Place[] outP) {
69 Transition t = Factory.newTransition();
70
71 t.setID(id);
72 t.setDescription(description);
73
74 Edge[] readEdges = new Edge[readP.length];
75 for (int i = 0; i < readP.length; i++) {
76 readEdges[i] = EdgeTest.example(description + ".read." + i, readP[i]);
77 }
78 t.setReadEdges(readEdges);
79
80 Edge[] inEdges = new Edge[inP.length];
81 for (int i = 0; i < inP.length; i++) {
82 inEdges[i] = EdgeTest.example(description + ".in." + i, inP[i]);
83 }
84 t.setInEdges(inEdges);
85
86 Edge[] writeEdges = new Edge[writeP.length];
87 for (int i = 0; i < writeP.length; i++) {
88 writeEdges[i] = EdgeTest.example(description + ".write." + i, writeP[i]);
89 }
90 t.setWriteEdges(writeEdges);
91
92 Edge[] outEdges = new Edge[outP.length];
93 for (int i = 0; i < outP.length; i++) {
94 outEdges[i] = EdgeTest.example(description + ".out." + i, outP[i]);
95 }
96 t.setOutEdges(outEdges);
97
98 return t;
99 }
100
101
102 /***
103 * Rigourous Test :-).
104 */
105 public void testApp() {
106 Transition t = Factory.newTransition();
107
108 Assert.assertEquals(t.getID(), Transition.DEFAULT_ID);
109 Assert.assertEquals(t.getDescription(), Transition.DEFAULT_DESCRIPTION);
110 Assert.assertEquals(t.getInEdges().length, Transition.DEFAULT_EDGE_NUMBER);
111 Assert.assertEquals(t.getOutEdges().length, Transition.DEFAULT_EDGE_NUMBER);
112 Assert.assertEquals(t.getStatus(), Transition.DEFAULT_STATUS);
113
114 t.setID("anton");
115 Assert.assertEquals("anton", t.getID());
116 Assert.assertEquals(t.getAbstractionLevel(), Operation.BLACK);
117
118
119 Assert.assertEquals(t.getDescription(), Transition.DEFAULT_DESCRIPTION);
120 t.setDescription("berta");
121 Assert.assertEquals("berta", t.getDescription());
122
123
124 Edge in0 = EdgeTest.example("in0", "place0", 0);
125 Edge in1 = EdgeTest.example("in1", "place1", 1);
126 Edge in2 = EdgeTest.example("in2", "place2", 2);
127 Edge[] inEdges = {in0, in1, in2};
128
129 Edge[] in = t.getInEdges();
130 Assert.assertEquals(in.length, 0);
131
132 t.setInEdges(inEdges);
133 in = t.getInEdges();
134 Assert.assertEquals(in.length, 3);
135
136 Edge e = t.getInEdge("place1");
137 Assert.assertEquals("place1", e.getPlace().getID());
138
139 t.removeInEdge("place1");
140 in = t.getInEdges();
141 Assert.assertEquals(in.length, 2);
142 Assert.assertFalse("place1".equals(in[0].getPlace().getID()));
143 Assert.assertFalse("place1".equals(in[1].getPlace().getID()));
144
145 t.addInEdge(in1);
146 in = t.getInEdges();
147 Assert.assertEquals(in.length, 3);
148 Assert.assertFalse(null == t.getInEdge("place0"));
149 Assert.assertFalse(null == t.getInEdge("place1"));
150 Assert.assertFalse(null == t.getInEdge("place2"));
151
152
153 Edge out0 = EdgeTest.example("out0", "place0", 0);
154 Edge out1 = EdgeTest.example("out1", "place1", 1);
155 Edge out2 = EdgeTest.example("out2", "place2", 2);
156 Edge[] outEdges = {out0, out1, out2};
157
158 Edge[] out = t.getOutEdges();
159 Assert.assertEquals(out.length, 0);
160
161 t.setOutEdges(outEdges);
162 out = t.getOutEdges();
163 Assert.assertEquals(out.length, 3);
164
165 e = t.getOutEdge("place1");
166 Assert.assertEquals("place1", e.getPlace().getID());
167
168 t.removeOutEdge("place1");
169 out = t.getOutEdges();
170 Assert.assertEquals(out.length, 2);
171 Assert.assertFalse("place1".equals(out[0].getPlace().getID()));
172 Assert.assertFalse("place1".equals(out[1].getPlace().getID()));
173
174 t.addOutEdge(in1);
175 out = t.getOutEdges();
176 Assert.assertEquals(out.length, 3);
177 Assert.assertFalse(null == t.getOutEdge("place0"));
178 Assert.assertFalse(null == t.getOutEdge("place1"));
179 Assert.assertFalse(null == t.getOutEdge("place2"));
180
181
182 Assert.assertEquals(t.getOperation(), null);
183 t.setOperation(OperationTest.example("ANTON", 0));
184 Assert.assertEquals("Abstraction level", Operation.RED, t.getAbstractionLevel());
185 Operation op = t.getOperation();
186
187
188
189 Assert.assertEquals(0, t.getConditions().length);
190 t.addCondition("feeling fine");
191 Assert.assertEquals(1, t.getConditions().length);
192 Assert.assertEquals("feeling fine", t.getConditions()[0]);
193
194
195
196 t.setStatus(Transition.DEFAULT_STATUS);
197 Assert.assertEquals(Transition.DEFAULT_STATUS, t.getStatus());
198
199 }
200 }