KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jbpm > bpel > def > SwitchDefTest


1 package org.jbpm.bpel.def;
2
3 import java.util.Collection JavaDoc;
4
5 import junit.framework.TestCase;
6
7 import org.jbpm.bpel.data.def.Snippet;
8
9 /**
10  * @author Juan Cantu
11  * @version $Revision: 1.3 $ $Date: 2005/05/07 00:03:43 $
12  */

13 public class SwitchDefTest extends TestCase {
14   Switch switchBlock;
15   Activity first;
16   Activity second;
17   
18   public void setUp() {
19     switchBlock = new Switch();
20     first = new Empty("first");
21     second = new Empty("second");
22   }
23   
24   public void testAddNode() {
25     switchBlock.addNode(first);
26     assertConnected(first);
27     assertEquals(null, switchBlock.getCondition(first));
28     switchBlock.addNode(second);
29     assertConnected(second);
30     assertEquals(null, switchBlock.getCondition(second));
31   }
32   
33   public void testCondition() {
34     switchBlock.addNode(second);
35     switchBlock.addNode(first);
36     
37     Snippet firstExpression = new Snippet();
38     Snippet secondExpression = new Snippet();
39     
40     switchBlock.setCondition(first, firstExpression);
41     switchBlock.setCondition(second, secondExpression);
42     
43     assertEquals(firstExpression, switchBlock.getCondition(first));
44     assertEquals(secondExpression, switchBlock.getCondition(second));
45   }
46   
47   public void testRemoveNode() {
48     //remove first, middle and last activities
49
switchBlock.addNode(first);
50     switchBlock.setOtherwise(second);
51     
52     switchBlock.removeNode(first);
53     assertDisconnected(first);
54     
55     switchBlock.removeNode(second);
56     assertDisconnected(second);
57     
58     assertEquals(0, switchBlock.getStart().getLeavingTransitions().size());
59     assertEquals(0, switchBlock.getEnd().getArrivingTransitions().size());
60     
61     assertEquals(0, switchBlock.getNodes().size());
62     assertEquals(0, switchBlock.getConditions().size());
63   }
64   
65   public void testOtherwise() {
66     switchBlock.setOtherwise(first);
67     switchBlock.addNode(second);
68     assertEquals(first, switchBlock.getOtherwise());
69   }
70   
71   public void testOtherwiseOverride() {
72     switchBlock.addNode(first);
73     switchBlock.setOtherwise(first);
74     switchBlock.setOtherwise(first);
75     
76     assertEquals(0, switchBlock.getCases().size());
77     assertEquals(first, switchBlock.getOtherwise());
78     assertEquals(switchBlock, first.getCompositeActivity());
79   }
80   
81   public void testOtherwiseDefault() {
82     switchBlock.addNode(second);
83     assertEquals(null, switchBlock.getOtherwise());
84   }
85   
86   public void testGetCases() {
87     switchBlock.addNode(second);
88     switchBlock.addNode(first);
89     assertEquals(2, switchBlock.getCases().size());
90   }
91   
92   public void testGetCasesOtherwise() {
93     switchBlock.addNode(first);
94     switchBlock.setOtherwise(second);
95     assertEquals(1, switchBlock.getCases().size());
96   }
97   
98   public void testReorderCase() {
99     switchBlock.addNode(first);
100     switchBlock.addNode(second);
101     
102     Snippet firstExpression = new Snippet();
103     Snippet secondExpression = new Snippet();
104     
105     switchBlock.setCondition(first, firstExpression);
106     switchBlock.setCondition(second, secondExpression);
107     
108     switchBlock.reorderNode(1, 0);
109     
110     assertEquals(second, switchBlock.getNodes().get(0));
111     assertEquals(firstExpression, switchBlock.getCondition(first));
112     assertEquals(secondExpression, switchBlock.getCondition(second));
113   }
114   
115   public void testReorderOtherwise() {
116     switchBlock.addNode(first);
117     Snippet firstExpression = new Snippet();
118     switchBlock.setCondition(first, firstExpression);
119     switchBlock.setOtherwise(second);
120     
121     switchBlock.reorderNode(1, 0);
122     
123     assertEquals(firstExpression, switchBlock.getCondition(second));
124     assertEquals(first, switchBlock.getOtherwise());
125   }
126   
127   private void assertConnected(Activity activity) {
128     Collection JavaDoc transitions = switchBlock.getStart().getLeavingTransitions();
129     assertTrue( transitions.contains( activity.getDefaultArrivingTransition() ) );
130     
131     transitions = switchBlock.getEnd().getArrivingTransitions();
132     assertTrue( transitions.contains(activity.getDefaultLeavingTransition()) );
133   }
134   
135   private void assertDisconnected(Activity activity) {
136     //validate that removed activity doesn't have incoming / outgoing transitions
137
assertEquals(0, activity.getArrivingTransitions().size());
138     assertEquals(0, activity.getLeavingTransitions().size());
139   }
140  
141 }
142
Popular Tags