DynamicGraphTest.java revision 747a7142d6192fce94a1b2a6cf2ad376946b7e8e
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.List; 9import java.util.Set; 10 11public class DynamicGraphTest { 12 13 private static <T> void assertFreeNodesEquals(DynamicGraph<T> graph, T[] expected) { 14 Assert.assertEqualsNoOrder(graph.getFreeNodes().toArray(), expected); 15 } 16 17 @Test 18 public void test8() { 19 DynamicGraph<String> dg = new DynamicGraph<>(); 20 dg.addNode("a1"); 21 dg.addNode("a2"); 22 dg.addNode("b1"); 23 dg.addNode("b2"); 24 dg.addNode("c1"); 25 dg.addEdge("b1", "a1"); 26 dg.addEdge("b1", "a2"); 27 dg.addEdge("b2", "a1"); 28 dg.addEdge("b2", "a2"); 29 dg.addEdge("c1", "b1"); 30 dg.addEdge("c1", "b2"); 31 dg.addNode("x"); 32 dg.addNode("y"); 33 List<String> freeNodes = dg.getFreeNodes(); 34 assertFreeNodesEquals(dg, new String[] {"a1", "a2", "y", "x"}); 35 36 dg.setStatus(freeNodes, Status.RUNNING); 37 dg.setStatus("a1", Status.FINISHED); 38 assertFreeNodesEquals(dg, new String[] {}); 39 40 dg.setStatus("a2", Status.FINISHED); 41 assertFreeNodesEquals(dg, new String[] { "b1", "b2"}); 42 43 dg.setStatus("b2", Status.RUNNING); 44 dg.setStatus("b1", Status.FINISHED); 45 assertFreeNodesEquals(dg, new String[] {}); 46 47 dg.setStatus("b2", Status.FINISHED); 48 assertFreeNodesEquals(dg, new String[] { "c1" }); 49 } 50 51 @Test 52 public void test2() { 53 DynamicGraph<String> dg = new DynamicGraph<>(); 54 dg.addNode("a1"); 55 dg.addNode("a2"); 56 dg.addNode("b1"); 57 dg.addEdge("b1", "a1"); 58 dg.addEdge("b1", "a2"); 59 dg.addNode("x"); 60 List<String> freeNodes = dg.getFreeNodes(); 61 assertFreeNodesEquals(dg, new String[] { "a1", "a2", "x" }); 62 63 dg.setStatus(freeNodes, Status.RUNNING); 64 dg.setStatus("a1", Status.FINISHED); 65 assertFreeNodesEquals(dg, new String[] {}); 66 67 dg.setStatus("a2", Status.FINISHED); 68 assertFreeNodesEquals(dg, new String[] { "b1" }); 69 70 dg.setStatus("b2", Status.RUNNING); 71 dg.setStatus("b1", Status.FINISHED); 72 assertFreeNodesEquals(dg, new String[] {}); 73 } 74 75} 76