@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class NodeIngestorTest {
- @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();
-
- @Test
- public void testGetContextForVersion() {
- DynamicJAXBContext ctx10 = ni.getContextForVersion(new SchemaVersion("v10"));
-
- //should work bc Foo is valid in test_network_v10 schema
- DynamicEntity foo10 = ctx10.newDynamicEntity("Foo");
+ @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();
+
+ @Test
+ public void testGetContextForVersion() {
+ 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")));
-
- //should work bc Bar is valid in test_business_v10 schema
- 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(new SchemaVersion("v11"));
-
- //should work bc Foo.quantity is valid in test_network_v11 schema
- DynamicEntity foo11 = ctx11.newDynamicEntity("Foo");
- foo11.set("quantity","12");
- assertTrue("12".equals(foo11.get("quantity")));
-
- DynamicEntity quux11 = ctx11.newDynamicEntity("Quux");
- quux11.set("qManagerName","some guy");
- assertTrue("some guy".equals(quux11.get("qManagerName")));
- XSDOutputResolver outputResolver11 = new XSDOutputResolver();
- ctx11.generateSchema(outputResolver11);
+ foo10.set("fooId","bar");
+ assertTrue("bar".equals(foo10.get("fooId")));
+
+ //should work bc Bar is valid in test_business_v10 schema
+ 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(new SchemaVersion("v11"));
+
+ //should work bc Foo.quantity is valid in test_network_v11 schema
+ DynamicEntity foo11 = ctx11.newDynamicEntity("Foo");
+ foo11.set("quantity","12");
+ assertTrue("12".equals(foo11.get("quantity")));
+
+ 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
- ctx10.newDynamicEntity("Quux");
- }
-
- @Test
- public void testHasNodeType() {
- 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));
- }
+
+ thrown.expect(IllegalArgumentException.class);
+ //should fail bc Quux not in v10 test schema
+ ctx10.newDynamicEntity("Quux");
+ }
+
+ @Test
+ public void testHasNodeType() {
+ 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");
+ 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 {
+ 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;
- }
- }
+ @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;
+ }
+ }
}