diff options
author | Kajur, Harish (vk250x) <vk250x@att.com> | 2018-08-10 12:42:00 -0400 |
---|---|---|
committer | Kajur, Harish (vk250x) <vk250x@att.com> | 2018-08-12 16:48:34 -0400 |
commit | a86d6a6644d6de3f3f814cd6e25cfe2213d5dd05 (patch) | |
tree | 9935a64d7f830ebedf2742e0febef40e898cea91 /aai-schema-ingest/src/test/java | |
parent | a395fa69a28a04d0a667fe458b4f10497a1d6794 (diff) |
Integrate aai-schema-ingest library into aai-core
Integrate the aai-core into using the aai-schema-ingest
library to be agnostic to the schema changes
Remove any references to aai-schema dependency in aai-core
Reorder the components so the aai-schema-ingest is first installed
Moved the edge rules to the aai-schema as they are linked to schema
Rework the generation of the aai-schema to using aai-schema-ingest library
Also remove the yaml and html folders as they get generated on the fly
So when maven pushes the aai-schema jar, the jar contains the generated
yaml, html and xsd files at runtime due to the gerrit limit of filesize
Issue-ID: AAI-1455
Change-Id: I87ecd9eb2fc96a09d3a6399955637674f6e7fb21
Signed-off-by: Kajur, Harish (vk250x) <vk250x@att.com>
Diffstat (limited to 'aai-schema-ingest/src/test/java')
34 files changed, 685 insertions, 276 deletions
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java index 9f6d67a1..e8c946d9 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.edges; @@ -36,17 +34,20 @@ import org.onap.aai.edges.enums.MultiplicityRule; import org.onap.aai.edges.exceptions.AmbiguousRuleChoiceException; import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.TestUtilConfigTranslator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.google.common.collect.Multimap; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, EdgeIngestor.class}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, EdgeIngestor.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class EdgeIngestorTest { @Autowired @@ -82,7 +83,7 @@ public class EdgeIngestorTest { @Test public void getRulesTest2() throws EdgeRuleNotFoundException { - EdgeRuleQuery q = new EdgeRuleQuery.Builder("puppy", "dog").build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("dog", "puppy").build(); Multimap<String, EdgeRule> results = ei.getRules(q); assertTrue(results.size() == 1); assertTrue(results.containsKey("dog|puppy")); @@ -101,8 +102,49 @@ public class EdgeIngestorTest { } @Test + public void getRulesFlippedTypesTest() throws EdgeRuleNotFoundException { + EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface", "logical-link").version(new SchemaVersion("v11")).build(); + Multimap<String, EdgeRule> results = ei.getRules(q); + assertTrue(results.size() == 3); + for (EdgeRule r : results.get("l-interface|logical-link")) { + if ("org.onap.relationships.inventory.Source".equals(r.getLabel()) || + "org.onap.relationships.inventory.Destination".equals(r.getLabel())) { + //these are defined with from=logical-link, to=l-interface, so they must be flipped + assertTrue(Direction.IN.equals(r.getDirection())); + } else if ("tosca.relationships.network.LinksTo".equals(r.getLabel())) { + //this is defined with from=l-interface, to=logical-link, so it shouldn't be flipped + assertTrue(Direction.OUT.equals(r.getDirection())); + } else { + fail("how did you get here"); + } + } + } + + @Test + public void fromToSameFlipTests() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { + //getRules, setting from and to + EdgeRuleQuery q = new EdgeRuleQuery.Builder("bloop","bloop").version(new SchemaVersion("v11")).build(); + Multimap<String, EdgeRule> results = ei.getRules(q); + assertTrue(results.size() == 1); + for (EdgeRule r : results.get("bloop|bloop")) { + assertTrue(Direction.IN.equals(r.getDirection())); + } + + //getRule, setting just from + EdgeRuleQuery q2 = new EdgeRuleQuery.Builder("bloop").version(new SchemaVersion("v11")).build(); + assertTrue(Direction.IN.equals(ei.getRule(q2).getDirection())); + + //getChildRules + Multimap<String, EdgeRule> child = ei.getChildRules("bloop", new SchemaVersion("v11")); + assertTrue(child.size() == 1); + for (EdgeRule r : child.get("bloop|bloop")) { + assertTrue(Direction.IN.equals(r.getDirection())); + } + } + + @Test public void getRulesTest3() throws EdgeRuleNotFoundException { - EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface").version(Version.V11).build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface").version(new SchemaVersion("v11")).build(); Multimap<String, EdgeRule> results = ei.getRules(q); assertTrue(results.size() == 4); assertTrue(results.containsKey("lag-interface|l-interface")); @@ -120,7 +162,7 @@ public class EdgeIngestorTest { @Test public void getRuleSimpleTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { - EdgeRuleQuery q = new EdgeRuleQuery.Builder("notation", "parent").build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("parent", "notation").build(); EdgeRule result = ei.getRule(q); assertTrue("parent".equals(result.getFrom())); assertTrue("notation".equals(result.getTo())); @@ -134,8 +176,25 @@ public class EdgeIngestorTest { } @Test + public void getRuleFlippedTypesTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { + EdgeRuleQuery q = new EdgeRuleQuery.Builder("notation", "parent").build(); + EdgeRule result = ei.getRule(q); + assertTrue("parent".equals(result.getFrom())); + assertTrue("notation".equals(result.getTo())); + assertTrue("has".equals(result.getLabel())); + //direction flipped to match input order per old EdgeRules.java API + assertTrue(Direction.IN.equals(result.getDirection())); + assertTrue(MultiplicityRule.MANY2MANY.equals(result.getMultiplicityRule())); + assertTrue(AAIDirection.OUT.toString().equals(result.getContains())); + assertTrue(AAIDirection.NONE.toString().equals(result.getDeleteOtherV())); + assertTrue(AAIDirection.NONE.toString().equals(result.getPreventDelete())); + assertTrue("parent contains notation".equals(result.getDescription())); + } + + @Test public void getRuleWithDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { - EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").version(Version.V11).build(); + + EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").version(new SchemaVersion("v11")).build(); EdgeRule res = ei.getRule(q); assertTrue(res.isDefault()); assertTrue("tosca.relationships.network.LinksTo".equals(res.getLabel())); @@ -143,7 +202,7 @@ public class EdgeIngestorTest { @Test public void getRuleWithNonDefault() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { - EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").label("org.onap.relationships.inventory.Source").version(Version.V11).build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").label("org.onap.relationships.inventory.Source").version(new SchemaVersion("v11")).build(); EdgeRule res = ei.getRule(q); assertFalse(res.isDefault()); assertTrue("org.onap.relationships.inventory.Source".equals(res.getLabel())); @@ -169,7 +228,7 @@ public class EdgeIngestorTest { public void getRuleAmbiguousDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { thrown.expect(AmbiguousRuleChoiceException.class); thrown.expectMessage("Multiple defaults found."); - EdgeRuleQuery q = new EdgeRuleQuery.Builder("seed","plant").version(Version.V11).build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("seed","plant").version(new SchemaVersion("v11")).build(); ei.getRule(q); } @@ -177,13 +236,13 @@ public class EdgeIngestorTest { public void getRuleNoDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException { thrown.expect(AmbiguousRuleChoiceException.class); thrown.expectMessage("No default found."); - EdgeRuleQuery q = new EdgeRuleQuery.Builder("apple", "orange").version(Version.V11).build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("apple", "orange").version(new SchemaVersion("v11")).build(); ei.getRule(q); } @Test public void hasRuleTest() { - assertTrue(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").version(Version.V11).build())); + assertTrue(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").version(new SchemaVersion("v11")).build())); assertFalse(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").build())); } @@ -197,7 +256,7 @@ public class EdgeIngestorTest { @Test public void getCousinRulesWithVersionTest() { - Multimap<String, EdgeRule> results = ei.getCousinRules("foo", Version.V10); + Multimap<String, EdgeRule> results = ei.getCousinRules("foo", new SchemaVersion("v10")); assertTrue(results.size() == 2); assertTrue(results.containsKey("bar|foo")); assertTrue(results.get("bar|foo").size() == 2); @@ -205,16 +264,16 @@ public class EdgeIngestorTest { @Test public void getCousinsNoneInVersionTest() { - Multimap<String, EdgeRule> results = ei.getCousinRules("foo", Version.V11); + Multimap<String, EdgeRule> results = ei.getCousinRules("foo", new SchemaVersion("v11")); assertTrue(results.isEmpty()); } @Test public void hasCousinTest() { assertTrue(ei.hasCousinRule("foo")); - assertTrue(ei.hasCousinRule("foo", Version.V10)); + assertTrue(ei.hasCousinRule("foo", new SchemaVersion("v10"))); assertFalse(ei.hasCousinRule("parent")); - assertFalse(ei.hasCousinRule("foo", Version.V11)); + assertFalse(ei.hasCousinRule("foo", new SchemaVersion("v11"))); } @Test @@ -231,7 +290,7 @@ public class EdgeIngestorTest { @Test public void getChildRulesWithVersionTest() { - Multimap<String, EdgeRule> results = ei.getChildRules("foo", Version.V10); + Multimap<String, EdgeRule> results = ei.getChildRules("foo", new SchemaVersion("v10")); assertTrue(results.size() == 2); assertTrue(results.containsKey("baz|foo")); assertTrue(results.containsKey("foo|quux")); @@ -239,16 +298,16 @@ public class EdgeIngestorTest { @Test public void getChildRulesNoneInVersionTest() { - Multimap<String, EdgeRule> results = ei.getChildRules("foo", Version.V11); + Multimap<String, EdgeRule> results = ei.getChildRules("foo", new SchemaVersion("v11")); assertTrue(results.isEmpty()); } @Test public void hasChildTest() { assertTrue(ei.hasChildRule("foo")); - assertTrue(ei.hasChildRule("foo", Version.V10)); + assertTrue(ei.hasChildRule("foo", new SchemaVersion("v10"))); assertFalse(ei.hasChildRule("puppy")); - assertFalse(ei.hasChildRule("foo", Version.V11)); + assertFalse(ei.hasChildRule("foo", new SchemaVersion("v11"))); } @Test @@ -265,23 +324,23 @@ public class EdgeIngestorTest { @Test public void getParentRulesWithVersionTest() { - Multimap<String, EdgeRule> results = ei.getParentRules("baz", Version.V10); + Multimap<String, EdgeRule> results = ei.getParentRules("baz", new SchemaVersion("v10")); assertTrue(results.size() == 1); assertTrue(results.containsKey("baz|foo")); } @Test public void getParentRulesNoneInVersionTest() { - Multimap<String, EdgeRule> results = ei.getParentRules("baz", Version.V11); + Multimap<String, EdgeRule> results = ei.getParentRules("baz", new SchemaVersion("v11")); assertTrue(results.isEmpty()); } @Test public void hasParentTest() { assertTrue(ei.hasParentRule("parent")); - assertTrue(ei.hasParentRule("quux", Version.V10)); + assertTrue(ei.hasParentRule("quux", new SchemaVersion("v10"))); assertFalse(ei.hasParentRule("puppy")); - assertFalse(ei.hasParentRule("foo", Version.V11)); + assertFalse(ei.hasParentRule("foo", new SchemaVersion("v11"))); } @Test @@ -292,7 +351,7 @@ public class EdgeIngestorTest { @Test public void getAllRulesTest() throws EdgeRuleNotFoundException { - Multimap<String, EdgeRule> res = ei.getAllRules(Version.V10); + Multimap<String, EdgeRule> res = ei.getAllRules(new SchemaVersion("v10")); assertTrue(res.size() == 4); assertTrue(res.containsKey("bar|foo")); assertTrue(res.get("bar|foo").size() == 2); @@ -300,7 +359,7 @@ public class EdgeIngestorTest { assertTrue(res.containsKey("foo|quux")); thrown.expect(EdgeRuleNotFoundException.class); - thrown.expectMessage("No rules found for version V9."); - ei.getAllRules(Version.V9); + thrown.expectMessage("No rules found for version v9."); + ei.getAllRules(new SchemaVersion("v9")); } } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java index 74aceb51..cf23a702 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.edges; @@ -28,7 +26,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.ConfigTranslatorForWiringTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -39,8 +38,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.google.common.collect.Multimap; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class, EdgeIngestor.class}) -@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class, EdgeIngestor.class}) +@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"}) @SpringBootTest public class EdgeIngestorWiringTest { @Autowired @@ -49,7 +48,7 @@ public class EdgeIngestorWiringTest { @Test public void test() throws EdgeRuleNotFoundException { assertNotNull(ei); - EdgeRuleQuery q = new EdgeRuleQuery.Builder("quux", "foo").label("dancesWith").version(Version.V10).build(); + EdgeRuleQuery q = new EdgeRuleQuery.Builder("quux", "foo").label("dancesWith").version(new SchemaVersion("v10")).build(); Multimap<String, EdgeRule> results = ei.getRules(q); assertTrue(results.size() == 1); assertTrue(results.containsKey("foo|quux")); diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java index f21246cb..da875ffe 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.edges; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java new file mode 100644 index 00000000..4be987e7 --- /dev/null +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java @@ -0,0 +1,59 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.edges; + +import static org.junit.Assert.*; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.tinkerpop.gremlin.structure.Direction; +import org.junit.Test; + +public class EdgeRuleTest { + + @Test + public void testFlipDirection() { + Map<String, String> rule = new HashMap<>(); + rule.put("from", "foo"); + rule.put("to", "bar"); + rule.put("label", "links"); + rule.put("contains-other-v", "NONE"); + rule.put("delete-other-v", "NONE"); + rule.put("prevent-delete", "NONE"); + rule.put("multiplicity", "ONE2ONE"); + rule.put("direction", "OUT"); + rule.put("default", "true"); + rule.put("private", "true"); + + EdgeRule r = new EdgeRule(rule); + + r.flipDirection(); + assertTrue(Direction.IN.equals(r.getDirection())); + r.flipDirection(); + assertTrue(Direction.OUT.equals(r.getDirection())); + + rule.put("direction", "BOTH"); + EdgeRule r2 = new EdgeRule(rule); + r2.flipDirection(); + assertTrue(Direction.BOTH.equals(r2.getDirection())); + } + +} diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java index 4bc23542..188848b7 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,21 +16,16 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.edges; import static org.junit.Assert.*; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.junit.Test; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.Filter; @@ -39,6 +34,10 @@ import static com.jayway.jsonpath.Filter.filter; public class JsonIngestorTest { + private SchemaVersion LATEST = new SchemaVersion("v14"); + private SchemaVersion V10 = new SchemaVersion("v10"); + private SchemaVersion V11 = new SchemaVersion("v11"); + @Test public void test() { //setup @@ -46,29 +45,29 @@ public class JsonIngestorTest { files.add("src/test/resources/edgeRules/test.json"); files.add("src/test/resources/edgeRules/test2.json"); files.add("src/test/resources/edgeRules/otherTestRules.json"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - input.put(Version.getLatest(), files); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(LATEST, files); List<String> files2 = new ArrayList<>(); files2.add("src/test/resources/edgeRules/test.json"); - input.put(Version.V10, files2); + input.put(V10, files2); List<String> files3 = new ArrayList<>(); files3.add("src/test/resources/edgeRules/test3.json"); files3.add("src/test/resources/edgeRules/defaultEdgesTest.json"); - input.put(Version.V11, files3); + input.put(V11, files3); //test JsonIngestor ji = new JsonIngestor(); - Map<Version, List<DocumentContext>> results = ji.ingest(input); + Map<SchemaVersion, List<DocumentContext>> results = ji.ingest(input); assertTrue(results.entrySet().size() == 3); - assertTrue(results.get(Version.getLatest()).size() == 3); - assertTrue(results.get(Version.V11).size() == 2); - assertTrue(results.get(Version.V10).size() == 1); + assertTrue(results.get(LATEST).size() == 3); + assertTrue(results.get(V11).size() == 2); + assertTrue(results.get(V10).size() == 1); Filter f = filter(where("from").is("foo").and("contains-other-v").is("NONE")); - List<Map<String, String>> filterRes = results.get(Version.V10).get(0).read("$.rules.[?]",f); + List<Map<String, String>> filterRes = results.get(V10).get(0).read("$.rules.[?]",f); assertTrue(filterRes.size() == 2); } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java index 6c99a489..dd5da519 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.edges; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java index bcd58732..5421aa2a 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,30 +16,53 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.nodes; +import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.*; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.nio.file.Files; +import java.nio.file.Paths; + +import javax.xml.bind.SchemaOutputResolver; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Result; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + import org.eclipse.persistence.dynamic.DynamicEntity; +import org.eclipse.persistence.jaxb.JAXBContext; import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.TestUtilConfigTranslator; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.w3c.dom.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, NodeIngestor.class}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, NodeIngestor.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class NodeIngestorTest { @Autowired @@ -52,10 +75,11 @@ public class NodeIngestorTest { @Test public void testGetContextForVersion() { - DynamicJAXBContext ctx10 = ni.getContextForVersion(Version.V10); + DynamicJAXBContext ctx10 = ni.getContextForVersion(new SchemaVersion("v10")); //should work bc Foo is valid in test_network_v10 schema DynamicEntity foo10 = ctx10.newDynamicEntity("Foo"); + foo10.set("fooId","bar"); assertTrue("bar".equals(foo10.get("fooId"))); @@ -63,9 +87,10 @@ public class NodeIngestorTest { DynamicEntity bar10 = ctx10.newDynamicEntity("Bar"); bar10.set("barId","bar2"); assertTrue("bar2".equals(bar10.get("barId"))); + XSDOutputResolver outputResolver10 = new XSDOutputResolver(); + ctx10.generateSchema(outputResolver10); - - DynamicJAXBContext ctx11 = ni.getContextForVersion(Version.V11); + DynamicJAXBContext ctx11 = ni.getContextForVersion(new SchemaVersion("v11")); //should work bc Foo.quantity is valid in test_network_v11 schema DynamicEntity foo11 = ctx11.newDynamicEntity("Foo"); @@ -75,7 +100,9 @@ public class NodeIngestorTest { DynamicEntity quux11 = ctx11.newDynamicEntity("Quux"); quux11.set("qManagerName","some guy"); assertTrue("some guy".equals(quux11.get("qManagerName"))); - + XSDOutputResolver outputResolver11 = new XSDOutputResolver(); + ctx11.generateSchema(outputResolver11); + thrown.expect(IllegalArgumentException.class); //should fail bc Quux not in v10 test schema @@ -84,8 +111,55 @@ public class NodeIngestorTest { @Test public void testHasNodeType() { - assertTrue(ni.hasNodeType("foo", Version.V11)); - assertTrue(ni.hasNodeType("quux", Version.V11)); - assertFalse(ni.hasNodeType("quux", Version.V10)); + assertTrue(ni.hasNodeType("foo", new SchemaVersion("v11"))); + assertTrue(ni.hasNodeType("quux", new SchemaVersion("v11"))); + assertFalse(ni.hasNodeType("quux", new SchemaVersion("v10"))); + } + @Test + public void testCombinedSchema() throws TransformerException, IOException { + DynamicJAXBContext ctx13 = ni.getContextForVersion(new SchemaVersion("v13")); + XSDOutputResolver outputResolver13 = new XSDOutputResolver(); + ctx13.generateSchema(outputResolver13); + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + printDocument(ni.getSchema(new SchemaVersion("v13")),buffer); + String content = new String(Files.readAllBytes(Paths.get("src/test/resources/forWiringTests/aai_oxm_v13.xml"))); + content = content.replaceAll("\\s+", ""); + String expected = buffer.toString().replaceAll("\\s+", ""); + assertThat("OXM:\n"+expected,expected, is(content)); + } + + public static void printDocument(Document doc, OutputStream out) throws IOException, TransformerException { + TransformerFactory tf = TransformerFactory.newInstance(); + Transformer transformer = tf.newTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); + + transformer.transform(new DOMSource(doc), + new StreamResult(new OutputStreamWriter(out, "UTF-8"))); + } + + private class XSDOutputResolver extends SchemaOutputResolver { + + @Override + public Result createOutput(String namespaceUri, String suggestedFileName) + throws IOException { + + // create new file + // create stream result + File temp = File.createTempFile("schema", ".xsd"); + StreamResult result = new StreamResult(temp); + System.out.println("Schema file: "+temp.getAbsolutePath()); + + // set system id + result.setSystemId(temp.toURI().toURL().toString()); + + // return result + return result; + } } } + + diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java index e62cc6ab..2749cdb7 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.nodes; @@ -29,7 +27,8 @@ import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext; import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.ConfigTranslatorForWiringTest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; @@ -38,8 +37,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class, NodeIngestor.class}) -@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class, NodeIngestor.class}) +@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"}) @SpringBootTest public class NodeIngestorWiringTest { @Autowired @@ -47,7 +46,7 @@ public class NodeIngestorWiringTest { @Test public void test() { - DynamicJAXBContext ctx10 = ni.getContextForVersion(Version.V10); + DynamicJAXBContext ctx10 = ni.getContextForVersion(new SchemaVersion("v10")); //should work bc Bar is valid in test_business_v10 schema DynamicEntity bar10 = ctx10.newDynamicEntity("Bar"); diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java index 9d66551b..543284cb 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.setup; @@ -37,8 +35,8 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class}) -@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class}) +@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"}) @SpringBootTest public class ConfigTranslatorWiringTest { @Autowired @@ -47,15 +45,15 @@ public class ConfigTranslatorWiringTest { @Test public void test() { assertNotNull(ct); - Map<Version, List<String>> nodes = ct.getNodeFiles(); - assertTrue(nodes.containsKey(Version.V10)); - assertTrue(1 == nodes.get(Version.V10).size()); - assertTrue("src/test/resources/oxm/test_business_v10.xml".equals(nodes.get(Version.V10).get(0))); + Map<SchemaVersion, List<String>> nodes = ct.getNodeFiles(); + assertTrue(nodes.containsKey(new SchemaVersion("v10"))); + assertTrue(1 == nodes.get(new SchemaVersion("v10")).size()); + assertTrue("src/test/resources/oxm/test_business_v10.xml".equals(nodes.get(new SchemaVersion("v10")).get(0))); - Map<Version, List<String>> edges = ct.getEdgeFiles(); - assertTrue(edges.containsKey(Version.V10)); - assertTrue(1 == edges.get(Version.V10).size()); - assertTrue("src/test/resources/edgeRules/test.json".equals(edges.get(Version.V10).get(0))); + Map<SchemaVersion, List<String>> edges = ct.getEdgeFiles(); + assertTrue(edges.containsKey(new SchemaVersion("v10"))); + assertTrue(1 == edges.get(new SchemaVersion("v10")).size()); + assertTrue("src/test/resources/edgeRules/test.json".equals(edges.get(new SchemaVersion("v10")).get(0))); } } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java index 5074f913..2103ac21 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.setup; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java index f9d6b620..aed9c633 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.setup; @@ -33,7 +31,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {SchemaLocationsBean.class}) -@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngest2.properties"}) +@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest2.properties"}) public class SchemaLocationsBeanEnvVarInjectionTest { @Autowired SchemaLocationsBean bean; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java index 0a22bbb0..99f2104a 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.setup; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java index 4604b045..150313b3 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.setup; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java index d6aee9a2..b2400aab 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,45 +16,40 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.testutils; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; -import org.onap.aai.setup.ConfigTranslator; -import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.*; /** * Good oxm, bad edge rules for rainy day edge rule validation testing */ public class BadEdgeConfigForValidationTest extends ConfigTranslator { - public BadEdgeConfigForValidationTest(SchemaLocationsBean bean) { - super(bean); + public static final SchemaVersion LATEST = new SchemaVersion("v14"); + + public BadEdgeConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); } @Override - public Map<Version, List<String>> getNodeFiles() { + public Map<SchemaVersion, List<String>> getNodeFiles() { List<String> files = new ArrayList<>(); files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - input.put(Version.getLatest(), files); + Map<SchemaVersion, List<String>> input = new HashMap<>(); + input.put(LATEST, files); return input; } @Override - public Map<Version, List<String>> getEdgeFiles() { - Map<Version, List<String>> input = new EnumMap<>(Version.class); + public Map<SchemaVersion, List<String>> getEdgeFiles() { + Map<SchemaVersion, List<String>> input = new TreeMap<>(); List<String> files = new ArrayList<>(); files.add("src/test/resources/edgeRules/test3-butbad.json"); - input.put(Version.getLatest(), files); + input.put(LATEST, files); return input; } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java index a778e48a..9de21f31 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,46 +16,41 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.testutils; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; -import org.onap.aai.setup.ConfigTranslator; -import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.*; /** * All schema files here are valid for sunny day validator testing */ public class BadNodeConfigForValidationTest extends ConfigTranslator { - public BadNodeConfigForValidationTest(SchemaLocationsBean bean) { - super(bean); + public static final SchemaVersion LATEST = new SchemaVersion("v14"); + + public BadNodeConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); } @Override - public Map<Version, List<String>> getNodeFiles() { + public Map<SchemaVersion, List<String>> getNodeFiles() { List<String> files = new ArrayList<>(); files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml"); files.add("src/test/resources/oxm/badConfigForValidationTest_oxm.xml"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - input.put(Version.getLatest(), files); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(LATEST, files); return input; } @Override - public Map<Version, List<String>> getEdgeFiles() { - Map<Version, List<String>> input = new EnumMap<>(Version.class); + public Map<SchemaVersion, List<String>> getEdgeFiles() { + Map<SchemaVersion, List<String>> input = new TreeMap<>(); List<String> files = new ArrayList<>(); files.add("src/test/resources/edgeRules/test3.json"); - input.put(Version.getLatest(), files); + input.put(LATEST, files); return input; } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java index 5e1b6c82..fc0a3984 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,44 +16,37 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.testutils; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; -import org.onap.aai.setup.ConfigTranslator; -import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.*; public class ConfigTranslatorForWiringTest extends ConfigTranslator { - public ConfigTranslatorForWiringTest(SchemaLocationsBean bean) { - super(bean); + public ConfigTranslatorForWiringTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); } @Override - public Map<Version, List<String>> getNodeFiles() { + public Map<SchemaVersion, List<String>> getNodeFiles() { String f = bean.getNodeDirectory() + "test_business_v10.xml"; List<String> files = new ArrayList<>(); files.add(f); - Map<Version, List<String>> mp = new EnumMap<>(Version.class); - mp.put(Version.V10, files); + Map<SchemaVersion, List<String>> mp = new TreeMap<>(); + mp.put(new SchemaVersion("v10"), files); return mp; } @Override - public Map<Version, List<String>> getEdgeFiles() { + public Map<SchemaVersion, List<String>> getEdgeFiles() { String f = bean.getEdgeDirectory() + "test.json"; List<String> files = new ArrayList<>(); files.add(f); - Map<Version, List<String>> mp = new EnumMap<>(Version.class); - mp.put(Version.V10, files); + Map<SchemaVersion, List<String>> mp = new TreeMap<>(); + mp.put(new SchemaVersion("v10"), files); return mp; } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java index 5efa2654..dd8d5977 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,49 +16,48 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.testutils; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.onap.aai.setup.ConfigTranslator; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; /** * All schema files here are valid for sunny day validator testing */ public class GoodConfigForValidationTest extends ConfigTranslator { - public GoodConfigForValidationTest(SchemaLocationsBean bean) { - super(bean); + private SchemaVersions schemaVersions; + + public GoodConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + this.schemaVersions = schemaVersions; } @Override - public Map<Version, List<String>> getNodeFiles() { + public Map<SchemaVersion, List<String>> getNodeFiles() { List<String> files = new ArrayList<>(); files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - //input.put(Version.getLatest(), files); - for (Version v : Version.values()) { + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + //input.put(SchemaVersion.getLatest(), files); + for (SchemaVersion v : schemaVersions.getVersions()) { input.put(v, files); } return input; } @Override - public Map<Version, List<String>> getEdgeFiles() { - Map<Version, List<String>> input = new EnumMap<>(Version.class); + public Map<SchemaVersion, List<String>> getEdgeFiles() { + Map<SchemaVersion, List<String>> input = new TreeMap<>(); List<String> files = new ArrayList<>(); files.add("src/test/resources/edgeRules/test3.json"); - //input.put(Version.getLatest(), files); - for (Version v : Version.values()) { + //input.put(SchemaVersion.getLatest(), files); + for (SchemaVersion v : schemaVersions.getVersions()) { input.put(v, files); } return input; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java new file mode 100644 index 00000000..66f2bea2 --- /dev/null +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java @@ -0,0 +1,82 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.aai.testutils; + +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +public class SchemaIncompleteTranslator extends ConfigTranslator { + + public SchemaIncompleteTranslator(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map<SchemaVersion, List<String>> getNodeFiles() { + List<String> files10 = new ArrayList<>(); + files10.add("src/test/resources/oxm/test_network_v10.xml"); + files10.add("src/test/resources/oxm/test_business_v10.xml"); + + List<String> files11 = new ArrayList<>(); + files11.add("src/test/resources/oxm/test_network_v11.xml"); + files11.add("src/test/resources/oxm/test_business_v11.xml"); + + List<String> files12 = new ArrayList<>(); + files12.add("src/test/resources/oxm/business_oxm_v12.xml"); + + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + + + input.put(new SchemaVersion("v10"), files10); + input.put(new SchemaVersion("v11"), files11); + input.put(new SchemaVersion("v12"), files12); + return input; + } + + @Override + public Map<SchemaVersion, List<String>> getEdgeFiles() { + List<String> files = new ArrayList<>(); + files.add("src/test/resources/edgeRules/test.json"); + files.add("src/test/resources/edgeRules/test2.json"); + files.add("src/test/resources/edgeRules/otherTestRules.json"); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(schemaVersions.getDefaultVersion(), files); + + List<String> files2 = new ArrayList<>(); + files2.add("src/test/resources/edgeRules/test.json"); + input.put(new SchemaVersion("v10"), files2); + + List<String> files3 = new ArrayList<>(); + files3.add("src/test/resources/edgeRules/test3.json"); + files3.add("src/test/resources/edgeRules/defaultEdgesTest.json"); + input.put(new SchemaVersion("v11"), files3); + + return input; + } +} diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java index 785b7403..b4756d64 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,29 +16,23 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.testutils; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; +import java.util.*; -import org.onap.aai.setup.ConfigTranslator; -import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.*; public class TestUtilConfigTranslator extends ConfigTranslator { - - public TestUtilConfigTranslator(SchemaLocationsBean bean) { - super(bean); + + public static final SchemaVersion LATEST = new SchemaVersion("v14"); + public TestUtilConfigTranslator(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); } @Override - public Map<Version, List<String>> getNodeFiles() { + public Map<SchemaVersion, List<String>> getNodeFiles() { List<String> files10 = new ArrayList<>(); files10.add("src/test/resources/oxm/test_network_v10.xml"); files10.add("src/test/resources/oxm/test_business_v10.xml"); @@ -47,30 +41,42 @@ public class TestUtilConfigTranslator extends ConfigTranslator { files11.add("src/test/resources/oxm/test_network_v11.xml"); files11.add("src/test/resources/oxm/test_business_v11.xml"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - input.put(Version.V10, files10); - input.put(Version.V11, files11); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(new SchemaVersion("v10"), files10); + input.put(new SchemaVersion("v11"), files11); + + List<String> files13 = new ArrayList<>(); + files13.add("src/test/resources/oxm/business_oxm_v13.xml"); + files13.add("src/test/resources/oxm/common_oxm_v13.xml"); + files13.add("src/test/resources/oxm/serviceDesign_oxm_v13.xml"); + files13.add("src/test/resources/oxm/network_oxm_v13.xml"); + + input.put(new SchemaVersion("v10"), files10); + input.put(new SchemaVersion("v11"), files11); + input.put(new SchemaVersion("v13"), files13); return input; } @Override - public Map<Version, List<String>> getEdgeFiles() { + public Map<SchemaVersion, List<String>> getEdgeFiles() { List<String> files = new ArrayList<>(); files.add("src/test/resources/edgeRules/test.json"); files.add("src/test/resources/edgeRules/test2.json"); files.add("src/test/resources/edgeRules/otherTestRules.json"); - Map<Version, List<String>> input = new EnumMap<>(Version.class); - input.put(Version.getLatest(), files); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(LATEST, files); List<String> files2 = new ArrayList<>(); files2.add("src/test/resources/edgeRules/test.json"); - input.put(Version.V10, files2); + input.put(new SchemaVersion("v10"), files2); List<String> files3 = new ArrayList<>(); files3.add("src/test/resources/edgeRules/test3.json"); files3.add("src/test/resources/edgeRules/defaultEdgesTest.json"); - input.put(Version.V11, files3); + input.put(new SchemaVersion("v11"), files3); return input; } } + + diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java new file mode 100644 index 00000000..2d753efb --- /dev/null +++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java @@ -0,0 +1,80 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.aai.testutils; + +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import org.onap.aai.setup.ConfigTranslator; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; + +public class TestUtilConfigTranslatorforBusiness extends ConfigTranslator { + + public TestUtilConfigTranslatorforBusiness(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } + + @Override + public Map<SchemaVersion, List<String>> getNodeFiles() { + List<String> files10 = new ArrayList<>(); +// files10.add("src/test/resources/oxm/test_network_v10.xml"); +// files10.add("src/test/resources/oxm/test_business_v10.xml"); + + List<String> files11 = new ArrayList<>(); +// files11.add("src/test/resources/oxm/test_network_v11.xml"); + files11.add("src/test/resources/oxm/business_v11.xml"); + + List<String> files13 = new ArrayList<>(); + files13.add("src/test/resources/oxm/business_oxm_v13.xml"); + files13.add("src/test/resources/oxm/common_oxm_v13.xml"); + files13.add("src/test/resources/oxm/serviceDesign_oxm_v13.xml"); + files13.add("src/test/resources/oxm/network_oxm_v13.xml"); + + Map<SchemaVersion, List<String>> input = new TreeMap<>(); +// input.put(Version.V10, files10); + input.put(new SchemaVersion("v11"), files11); + input.put(schemaVersions.getDefaultVersion(), files13); + return input; + } + + @Override + public Map<SchemaVersion, List<String>> getEdgeFiles() { + List<String> files = new ArrayList<>(); + files.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"); + Map<SchemaVersion, List<String>> input = new TreeMap<>(); + input.put(schemaVersions.getDefaultVersion(), files); + + List<String> files2 = new ArrayList<>(); + files2.add("src/test/resources/dbedgerules/test.json"); +// input.put(Version.V10, files2); + + List<String> files3 = new ArrayList<>(); + files3.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json"); + input.put(new SchemaVersion("v11"), files3); + + return input; + } +} diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java index 7078ac3a..49bb5986 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java index 69f56007..b70d13d6 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java index f0d13d2e..8c0ac82c 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation; @@ -28,16 +26,19 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.BadNodeConfigForValidationTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, BadNodeConfigForValidationTest.class, NodeIngestor.class, +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadNodeConfigForValidationTest.class, NodeIngestor.class, CheckEverythingStrategy.class, DefaultVersionValidationModule.class, VersionValidator.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class VersionValidatorRainyDayTest { @Autowired @@ -46,8 +47,8 @@ public class VersionValidatorRainyDayTest { @Test public void test() { assertFalse(validator.validate()); - assertTrue(validator.getErrorMsg().contains(Version.V12.toString())); - assertTrue(validator.getErrorMsg().contains(Version.V11.toString())); + assertTrue(validator.getErrorMsg().contains(new SchemaVersion("v12").toString())); + assertTrue(validator.getErrorMsg().contains(new SchemaVersion("v11").toString())); } } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java index f1950dd6..ff944aad 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation; @@ -28,15 +26,25 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.GoodConfigForValidationTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class, - CheckEverythingStrategy.class, DefaultVersionValidationModule.class, VersionValidator.class}) +@ContextConfiguration(classes = { + SchemaLocationsBean.class, + SchemaVersions.class, + GoodConfigForValidationTest.class, + NodeIngestor.class, + CheckEverythingStrategy.class, + DefaultVersionValidationModule.class, + VersionValidator.class +}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class VersionValidatorSunnyDayTest { @Autowired diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java index 86aa61d3..a4613813 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; @@ -32,8 +30,7 @@ import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; import org.onap.aai.edges.JsonIngestor; -import org.onap.aai.setup.Version; -import org.onap.aai.validation.edges.CousinDefaultingValidationModule; +import org.onap.aai.setup.SchemaVersion; import com.jayway.jsonpath.DocumentContext; @@ -43,13 +40,15 @@ public class CousinDefaultingValidationModuleTest { @BeforeClass public static void setUpBeforeClass() { - Map<Version, List<String>> testRules = new HashMap<>(); + Map<SchemaVersion, List<String>> testRules = new HashMap<>(); List<String> testFiles = new ArrayList<>(); testFiles.add("src/test/resources/edgeRules/cousinDefaultValidationTest.json"); - testRules.put(Version.getLatest(), testFiles); + + SchemaVersion LATEST_VERSION = new SchemaVersion("v14"); + testRules.put(LATEST_VERSION, testFiles); JsonIngestor ji = new JsonIngestor(); - ctxs = ji.ingest(testRules).get(Version.getLatest()); + ctxs = ji.ingest(testRules).get(LATEST_VERSION); validator = new CousinDefaultingValidationModule(); } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java index 39f2a019..a1b5fa43 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java index 5a3a4334..2a49e45a 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; @@ -28,6 +26,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.BadEdgeConfigForValidationTest; import org.onap.aai.validation.CheckEverythingStrategy; import org.onap.aai.validation.edges.CousinDefaultingValidationModule; @@ -39,13 +38,15 @@ import org.onap.aai.validation.edges.UniqueLabelValidationModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, BadEdgeConfigForValidationTest.class, NodeIngestor.class, +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadEdgeConfigForValidationTest.class, NodeIngestor.class, CheckEverythingStrategy.class, DefaultEdgeFieldsValidationModule.class, UniqueLabelValidationModule.class, SingleContainmentValidationModule.class, CousinDefaultingValidationModule.class, NodeTypesValidationModule.class, EdgeRuleValidator.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class EdgeRuleValidatorRainyDayTest { @Autowired diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java index 20885894..af782ccf 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; @@ -28,6 +26,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.GoodConfigForValidationTest; import org.onap.aai.validation.CheckEverythingStrategy; import org.onap.aai.validation.edges.CousinDefaultingValidationModule; @@ -39,13 +38,15 @@ import org.onap.aai.validation.edges.UniqueLabelValidationModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class, +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, GoodConfigForValidationTest.class, NodeIngestor.class, CheckEverythingStrategy.class, DefaultEdgeFieldsValidationModule.class, UniqueLabelValidationModule.class, SingleContainmentValidationModule.class, CousinDefaultingValidationModule.class, NodeTypesValidationModule.class, EdgeRuleValidator.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class EdgeRuleValidatorSunnyDayTest { @Autowired diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java index a7cb9c2e..e3efc23c 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; @@ -31,16 +29,18 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; -import org.onap.aai.setup.Version; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.TestUtilConfigTranslator; -import org.onap.aai.validation.edges.NodeTypesValidationModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, NodeIngestor.class, NodeTypesValidationModule.class}) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, NodeIngestor.class, NodeTypesValidationModule.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class NodeTypesValidationModuleTest { @Autowired @@ -52,8 +52,8 @@ public class NodeTypesValidationModuleTest { testPairs.add("bar|foo"); testPairs.add("foo|foo"); testPairs.add("foo|quux"); - assertTrue("".equals(validator.validate(testPairs, Version.V11))); - assertTrue(validator.validate(testPairs, Version.V10).contains("Invalid node type(s) found: quux")); //bc no quux in v10 + assertTrue("".equals(validator.validate(testPairs, new SchemaVersion("v11")))); + assertTrue(validator.validate(testPairs, new SchemaVersion("v10")).contains("Invalid node type(s) found: quux")); //bc no quux in v10 } @Test @@ -62,6 +62,6 @@ public class NodeTypesValidationModuleTest { testPairs.add("bar|"); testPairs.add("|foo"); testPairs.add("|"); - assertTrue("".equals(validator.validate(testPairs, Version.V11))); //bc empty just ignored + assertTrue("".equals(validator.validate(testPairs, new SchemaVersion("v11")))); //bc empty just ignored } } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java index caf73cb5..ae7c23d7 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,40 +16,35 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; import static org.junit.Assert.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.junit.BeforeClass; import org.junit.Test; import org.onap.aai.edges.JsonIngestor; -import org.onap.aai.setup.Version; -import org.onap.aai.validation.edges.SingleContainmentValidationModule; +import org.onap.aai.setup.SchemaVersion; import com.jayway.jsonpath.DocumentContext; public class SingleContainmentValidationModuleTest { private static List<DocumentContext> ctxs; private static SingleContainmentValidationModule validator; + public static final SchemaVersion LATEST = new SchemaVersion("v14"); @BeforeClass public static void setUpBeforeClass() { - Map<Version, List<String>> testRules = new HashMap<>(); + Map<SchemaVersion, List<String>> testRules = new TreeMap<>(); List<String> testFiles = new ArrayList<>(); testFiles.add("src/test/resources/edgeRules/containsValidationTest.json"); - testRules.put(Version.getLatest(), testFiles); + testRules.put(LATEST, testFiles); JsonIngestor ji = new JsonIngestor(); - ctxs = ji.ingest(testRules).get(Version.getLatest()); + ctxs = ji.ingest(testRules).get(LATEST); validator = new SingleContainmentValidationModule(); } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java index 7f51a6fb..3b0ab034 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,41 +16,36 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.edges; import static org.junit.Assert.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.junit.BeforeClass; import org.junit.Test; import org.onap.aai.edges.JsonIngestor; -import org.onap.aai.setup.Version; -import org.onap.aai.validation.edges.UniqueLabelValidationModule; +import org.onap.aai.setup.SchemaVersion; import com.jayway.jsonpath.DocumentContext; public class UniqueLabelValidationModuleTest { private static List<DocumentContext> ctxs; private static UniqueLabelValidationModule validator; - + public static final SchemaVersion LATEST = new SchemaVersion("v14"); + @BeforeClass public static void setup() { - Map<Version, List<String>> testRules = new HashMap<>(); + Map<SchemaVersion, List<String>> testRules = new TreeMap<>(); List<String> testFiles = new ArrayList<>(); testFiles.add("src/test/resources/edgeRules/labelValidationTest1.json"); testFiles.add("src/test/resources/edgeRules/labelValidationTest2.json"); - testRules.put(Version.getLatest(), testFiles); + testRules.put(LATEST, testFiles); JsonIngestor ji = new JsonIngestor(); - ctxs = ji.ingest(testRules).get(Version.getLatest()); + ctxs = ji.ingest(testRules).get(LATEST); validator = new UniqueLabelValidationModule(); } diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java index d1a60dd8..a026504f 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.nodes; @@ -28,6 +26,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.BadNodeConfigForValidationTest; import org.onap.aai.validation.CheckEverythingStrategy; import org.onap.aai.validation.nodes.DefaultDuplicateNodeDefinitionValidationModule; @@ -35,11 +34,13 @@ import org.onap.aai.validation.nodes.NodeValidator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, BadNodeConfigForValidationTest.class, NodeIngestor.class, +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadNodeConfigForValidationTest.class, NodeIngestor.class, CheckEverythingStrategy.class, DefaultDuplicateNodeDefinitionValidationModule.class, NodeValidator.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class NodeValidatorRainyDayTest { @Autowired diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java new file mode 100644 index 00000000..83bf3748 --- /dev/null +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java @@ -0,0 +1,88 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.aai.validation.nodes; + +import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.onap.aai.nodes.NodeIngestor; +import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.onap.aai.testutils.SchemaIncompleteTranslator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.w3c.dom.Document; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +@Ignore +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, SchemaIncompleteTranslator.class, NodeIngestor.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) +//@SpringBootTest +public class NodeValidatorSchemaIncompleteTest { + @Autowired + NodeIngestor ni; + + //set thrown.expect to whatever a specific test needs + //this establishes a default of expecting no exceptions to be thrown + @Rule + public ExpectedException thrown = ExpectedException.none(); + + //Throws a NullPointerException because a JavaType is referenced, but not defined + @Test + public void testIncompleteCombinedSchema() throws TransformerException, IOException, IllegalStateException { + thrown.expect(NullPointerException.class); + + + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + printDocument(ni.getSchema(new SchemaVersion("v12")),buffer); + } + + public static void printDocument(Document doc, OutputStream out) throws IOException, TransformerException { + TransformerFactory tf = TransformerFactory.newInstance(); + Transformer transformer = tf.newTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); + + transformer.transform(new DOMSource(doc), + new StreamResult(new OutputStreamWriter(out, "UTF-8"))); + } + +} diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java index 6233dfe1..6d0a6a50 100644 --- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java +++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.validation.nodes; @@ -28,6 +26,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.aai.nodes.NodeIngestor; import org.onap.aai.setup.SchemaLocationsBean; +import org.onap.aai.setup.SchemaVersions; import org.onap.aai.testutils.GoodConfigForValidationTest; import org.onap.aai.validation.CheckEverythingStrategy; import org.onap.aai.validation.nodes.DefaultDuplicateNodeDefinitionValidationModule; @@ -35,11 +34,13 @@ import org.onap.aai.validation.nodes.NodeValidator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class, +@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, GoodConfigForValidationTest.class, NodeIngestor.class, CheckEverythingStrategy.class, DefaultDuplicateNodeDefinitionValidationModule.class, NodeValidator.class}) +@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" }) @SpringBootTest public class NodeValidatorSunnyDayTest { @Autowired |