DynamicGraphTest.java revision 892b08c1f1afd198fd8ccbf804de28b7ce12f547
1package test; 2 3import org.testng.Assert; 4import org.testng.annotations.Test; 5import org.testng.internal.DynamicGraph; 6import org.testng.internal.DynamicGraph.Status; 7 8import java.util.Set; 9 10public class DynamicGraphTest { 11 12 private static <T> void assertFreeNodesEquals(DynamicGraph<T> graph, T[] expected) { 13 Assert.assertEqualsNoOrder(graph.getFreeNodes().toArray(), expected); 14 } 15 16 @Test 17 public void test8() { 18 DynamicGraph<String> dg = new DynamicGraph<String>(); 19 dg.addEdge("b1", "a1"); 20 dg.addEdge("b1", "a2"); 21 dg.addEdge("b2", "a1"); 22 dg.addEdge("b2", "a2"); 23 dg.addEdge("c1", "b1"); 24 dg.addEdge("c1", "b2"); 25 dg.addNode("x"); 26 dg.addNode("y"); 27 Set<String> freeNodes = dg.getFreeNodes(); 28 assertFreeNodesEquals(dg, new String[] {"a1", "a2", "y", "x"}); 29 30 dg.setStatus(freeNodes, Status.RUNNING); 31 dg.setStatus("a1", Status.FINISHED); 32 assertFreeNodesEquals(dg, new String[] {}); 33 34 dg.setStatus("a2", Status.FINISHED); 35 assertFreeNodesEquals(dg, new String[] { "b1", "b2"}); 36 37 dg.setStatus("b2", Status.RUNNING); 38 dg.setStatus("b1", Status.FINISHED); 39 assertFreeNodesEquals(dg, new String[] {}); 40 41 dg.setStatus("b2", Status.FINISHED); 42 assertFreeNodesEquals(dg, new String[] { "c1" }); 43 } 44 45 @Test 46 public void test2() { 47 DynamicGraph<String> dg = new DynamicGraph<String>(); 48 dg.addEdge("b1", "a1"); 49 dg.addEdge("b1", "a2"); 50 dg.addNode("x"); 51 Set<String> freeNodes = dg.getFreeNodes(); 52 assertFreeNodesEquals(dg, new String[] { "a1", "a2", "x" }); 53 54 dg.setStatus(freeNodes, Status.RUNNING); 55 dg.setStatus("a1", Status.FINISHED); 56 assertFreeNodesEquals(dg, new String[] {}); 57 58 dg.setStatus("a2", Status.FINISHED); 59 assertFreeNodesEquals(dg, new String[] { "b1" }); 60 61 dg.setStatus("b2", Status.RUNNING); 62 dg.setStatus("b1", Status.FINISHED); 63 assertFreeNodesEquals(dg, new String[] {}); 64 } 65 66} 67