1 package org.jbpm.bpel.def; 2 3 import java.util.Collection ; 4 5 import junit.framework.TestCase; 6 7 import org.jbpm.bpel.data.def.Snippet; 8 9 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 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 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 assertEquals(0, activity.getArrivingTransitions().size()); 138 assertEquals(0, activity.getLeavingTransitions().size()); 139 } 140 141 } 142 | Popular Tags |