Merge from ECOMP's repository
[vid.git] / vid-app-common / src / test / java / org / onap / vid / utils / TreeTest.java
1 package org.onap.vid.utils;
2
3 import com.google.common.collect.ImmutableList;
4 import org.jetbrains.annotations.NotNull;
5 import org.testng.annotations.DataProvider;
6 import org.testng.annotations.Test;
7
8 import java.util.List;
9
10 import static org.junit.Assert.assertFalse;
11 import static org.testng.Assert.*;
12
13 public class TreeTest {
14
15     @NotNull
16     protected Tree<String> buildTreeForTest() {
17         Tree<String> tree = new Tree<>("a");
18         tree.addPath("b","c","d");
19         tree.addPath("b","cc","dd");
20         tree.addPath("1","2","dd");
21         return tree;
22     }
23
24     @DataProvider
25     public static Object[][] pathsToFind() {
26         return new Object[][]{
27                 {ImmutableList.of("b","c","d"), true},
28                 {ImmutableList.of("b","c"), true},
29                 {ImmutableList.of("b","cc","dd"), true},
30                 {ImmutableList.of("b","cc","d"), false},
31                 {ImmutableList.of("1","2","dd"), true},
32                 {ImmutableList.of("b"), true},
33                 {ImmutableList.of("c"), false},
34                 {ImmutableList.of("z", "z", "z", "z", "z"), false},
35         };
36     }
37
38     @Test(dataProvider="pathsToFind")
39     public void whenBuildTree_nodesFoundsInRoute(List<String> path, boolean isFound) {
40         Tree<String> tree = buildTreeForTest();
41         assertEquals(isFound, tree.isPathExist(path));
42     }
43
44     @Test(dataProvider="pathsToFind")
45     public void whenBuildTree_subTreeGetRight(List<String> path, boolean isFound) {
46         Tree<String> tree = buildTreeForTest();
47         if (isFound) {
48             assertNotNull(tree.getSubTree(path));
49         }
50         else {
51             assertNull(tree.getSubTree(path));
52         }
53     }
54
55     @Test
56     public void whenBuildTree_getSubTreeAsExpected() {
57         Tree<String> tree = buildTreeForTest();
58         Tree<String> subTree = tree.getSubTree("b","c");
59         assertEquals(subTree.getRootValue(), "c");
60         assertTrue(subTree.isPathExist("d"));
61         assertFalse(subTree.isPathExist("b","c","d"));
62     }
63 }