AAI-1523 checkstyle warnings for aai-schema-ingest
[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 }