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