3b0ab0349cea4c019dae2ee8922d21e1ed9b0972
[aai/aai-common.git] / aai-schema-ingest / src / test / java / org / onap / aai / validation / edges / UniqueLabelValidationModuleTest.java
1 /** 
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.aai.validation.edges;
22
23 import static org.junit.Assert.*;
24
25 import java.util.*;
26
27 import org.junit.BeforeClass;
28 import org.junit.Test;
29 import org.onap.aai.edges.JsonIngestor;
30 import org.onap.aai.setup.SchemaVersion;
31
32 import com.jayway.jsonpath.DocumentContext;
33
34 public class UniqueLabelValidationModuleTest {
35         private static List<DocumentContext> ctxs;
36         private static UniqueLabelValidationModule validator;
37         public static final SchemaVersion LATEST = new SchemaVersion("v14");
38
39         @BeforeClass
40         public static void setup() {
41                 Map<SchemaVersion, List<String>> testRules = new TreeMap<>();
42                 List<String> testFiles = new ArrayList<>();
43                 testFiles.add("src/test/resources/edgeRules/labelValidationTest1.json");
44                 testFiles.add("src/test/resources/edgeRules/labelValidationTest2.json");
45                 testRules.put(LATEST, testFiles);
46                 
47                 JsonIngestor ji = new JsonIngestor();
48                 ctxs = ji.ingest(testRules).get(LATEST);
49                 validator = new UniqueLabelValidationModule();
50         }
51
52         @Test
53         public void testValidSetOneFile() {
54                 assertTrue("".equals(validator.validate("human|monster", ctxs)));
55                 assertTrue("".equals(validator.validate("monster|human", ctxs)));
56         }
57         
58         @Test
59         public void testValidDupLabelButDiffPairs() {
60                 assertTrue("".equals(validator.validate("human|strange-and-interesting-plant", ctxs)));
61                 assertTrue("".equals(validator.validate("strange-and-interesting-plant|human", ctxs)));
62         }
63         
64         @Test
65         public void testValidAcrossFiles() {
66                 assertTrue("".equals(validator.validate("human|toaster", ctxs)));
67                 assertTrue("".equals(validator.validate("toaster|human", ctxs)));
68         }
69
70         @Test
71         public void testInvalidSetOneFileBothTypes() {
72                 assertTrue(validator.validate("sphinx|monster", ctxs).contains("has multiple rules using the same label"));
73                 assertTrue(validator.validate("monster|sphinx", ctxs).contains("has multiple rules using the same label"));
74         }
75         
76         @Test
77         public void testInvalidSetOneFileJustCousins() {
78                 assertTrue(validator.validate("griffin|hippogriff", ctxs).contains("has multiple rules using the same label"));
79                 assertTrue(validator.validate("hippogriff|griffin", ctxs).contains("has multiple rules using the same label"));
80         }
81         
82         @Test
83         public void testInvalidSetMultipleFiles() {
84                 assertTrue(validator.validate("lava|floor", ctxs).contains("has multiple rules using the same label"));
85                 assertTrue(validator.validate("floor|lava", ctxs).contains("has multiple rules using the same label"));
86         }
87         
88         @Test
89         public void testInvalidCopyInOtherFile() {
90                 assertTrue(validator.validate("badger|mushroom", ctxs).contains("has multiple rules using the same label"));
91         }
92 }