aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorPiotr Darosz <piotr.darosz@nokia.com>2019-03-08 14:50:29 +0100
committerPiotr Darosz <piotr.darosz@nokia.com>2019-03-11 08:10:14 +0100
commit6eb3742d1e4e4b9ff70457a5367eb9ddb367cfce (patch)
tree1b91b1782f116235f9611556412cfb1b039bb1c2 /src/test
parent2d01f5210b6b5c8f0b6cdd99728d8b7b9f2fa886 (diff)
Convert modules and relations to SVG
Generate SVG image from modules chain and save it to DB. Change-Id: I0f0b065f82de9b4d2084ec51043f485401842e23 Issue-ID: CLAMP-284 Signed-off-by: Piotr Darosz <piotr.darosz@nokia.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/clamp/clds/util/XmlToolsTest.java72
-rw-r--r--src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java90
-rw-r--r--src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java77
-rw-r--r--src/test/java/org/onap/clamp/clds/util/drawing/DocumentBuilderTest.java80
-rw-r--r--src/test/resources/clds/util/file.xml6
5 files changed, 325 insertions, 0 deletions
diff --git a/src/test/java/org/onap/clamp/clds/util/XmlToolsTest.java b/src/test/java/org/onap/clamp/clds/util/XmlToolsTest.java
new file mode 100644
index 00000000..4351a80d
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/util/XmlToolsTest.java
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.clamp.clds.util;
+
+import java.io.IOException;
+import java.io.StringReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import org.apache.batik.anim.dom.SVGDOMImplementation;
+import org.apache.batik.util.SVGConstants;
+import org.junit.Assert;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class XmlToolsTest {
+
+ @Test
+ public void exportXmlDocumentAsStringTest() throws IOException, ParserConfigurationException, SAXException {
+ String expected = ResourceFileUtil.getResourceAsString("clds/util/file.xml");
+ Document document = parseStringToXmlDocument(expected);
+ String actual = XmlTools.exportXmlDocumentAsString(document);
+ Assert.assertEquals(expected.trim(), actual.trim());
+ }
+
+ @Test
+ public void createEmptySvgDocumentTest() {
+ Document doc = XmlTools.createEmptySvgDocument();
+ Assert.assertEquals(SVGDOMImplementation.SVG_NAMESPACE_URI, doc.getDocumentElement().getNamespaceURI());
+ Assert.assertEquals(SVGConstants.SVG_SVG_TAG, doc.getDocumentElement().getNodeName());
+ Assert.assertNull(doc.getDoctype());
+ }
+
+
+ public static Document parseStringToXmlDocument(String res)
+ throws ParserConfigurationException, SAXException, IOException {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(false);
+ dbf.setNamespaceAware(true);
+ dbf.setFeature("http://xml.org/sax/features/namespaces", false);
+ dbf.setFeature("http://xml.org/sax/features/validation", false);
+ dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
+ dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ InputSource is = new InputSource(new StringReader(res));
+ return db.parse(is);
+ }
+
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java
new file mode 100644
index 00000000..477e6a73
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java
@@ -0,0 +1,90 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.clamp.clds.util.drawing;
+
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ClampGraphBuilderTest {
+ @Mock
+ private Painter mockPainter;
+
+ @Captor
+ private ArgumentCaptor<String> collectorCaptor;
+
+ @Captor
+ private ArgumentCaptor<List<String>> microServicesCaptor;
+
+ @Captor
+ private ArgumentCaptor<String> policyCaptor;
+
+ @Test
+ public void clampGraphBuilderCompleteChainTest() {
+ String collector = "VES";
+ String ms1 = "ms1";
+ String ms2 = "ms2";
+ String policy = "Policy";
+ List<String> microServices = Arrays.asList(ms1, ms2);
+
+ ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter);
+ clampGraphBuilder.collector(collector).microService(ms1).microService(ms2).policy(policy).build();
+
+ verify(mockPainter, times(1))
+ .doPaint(collectorCaptor.capture(), microServicesCaptor.capture(), policyCaptor.capture());
+
+ Assert.assertEquals(collector, collectorCaptor.getValue());
+ Assert.assertEquals(microServices, microServicesCaptor.getValue());
+ Assert.assertEquals(policy, policyCaptor.getValue());
+ }
+
+ @Test(expected = InvalidStateException.class)
+ public void clampGraphBuilderNoPolicyGivenTest() {
+ String collector = "VES";
+ String ms1 = "ms1";
+ String ms2 = "ms2";
+
+ ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter);
+ clampGraphBuilder.collector(collector).microService(ms1).microService(ms2).build();
+ }
+
+ @Test(expected = InvalidStateException.class)
+ public void clampGraphBuilderNoMicroServiceGivenTest() {
+ String collector = "VES";
+ String policy = "Policy";
+
+ ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter);
+ clampGraphBuilder.collector(collector).policy(policy).build();
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java
new file mode 100644
index 00000000..6bbebdfd
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.clamp.clds.util.drawing;
+
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import javax.xml.parsers.ParserConfigurationException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.onap.clamp.clds.util.XmlToolsTest;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ClampGraphTest {
+ @Mock
+ private DocumentBuilder mockDocumentBuilder;
+
+ @Test
+ public void getAsSVGTest() throws IOException, ParserConfigurationException, SAXException {
+ String expected = ResourceFileUtil.getResourceAsString("clds/util/file.xml");
+ Document document = XmlToolsTest.parseStringToXmlDocument(expected);
+
+ when(mockDocumentBuilder.getGroupingDocument()).thenReturn(document);
+
+ String actual = new ClampGraph(mockDocumentBuilder).getAsSVG();
+ Assert.assertEquals(expected.trim(), actual.trim());
+ }
+
+ @Test
+ public void getAsSVGLazyTest() throws IOException, ParserConfigurationException, SAXException {
+ String expected = ResourceFileUtil.getResourceAsString("clds/util/file.xml");
+ Document document = XmlToolsTest.parseStringToXmlDocument(expected);
+
+ when(mockDocumentBuilder.getGroupingDocument()).thenReturn(document);
+ ClampGraph cg = new ClampGraph(mockDocumentBuilder);
+
+ String actualFirst = cg.getAsSVG();
+ verify(mockDocumentBuilder, times(1)).getGroupingDocument();
+
+ String actualSecond = cg.getAsSVG();
+ verifyNoMoreInteractions(mockDocumentBuilder);
+
+ Assert.assertEquals(expected.trim(), actualFirst.trim());
+ Assert.assertEquals(expected.trim(), actualSecond.trim());
+
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/DocumentBuilderTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/DocumentBuilderTest.java
new file mode 100644
index 00000000..6546553c
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/util/drawing/DocumentBuilderTest.java
@@ -0,0 +1,80 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.clamp.clds.util.drawing;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import javax.xml.parsers.ParserConfigurationException;
+import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.batik.util.SVGConstants;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.onap.clamp.clds.util.XmlToolsTest;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+
+@RunWith(MockitoJUnitRunner.class)
+public class DocumentBuilderTest {
+ @Mock
+ private SVGGraphics2D mockG2d;
+
+ @Mock
+ private Document mockDomImpl;
+
+ @Test
+ public void pushChangestoDocumentTest() throws IOException, ParserConfigurationException, SAXException {
+ String dataElementId = "someId";
+ String newNodeTag = "tagged";
+ String newNodeText = "Sample text";
+ String xml = ResourceFileUtil.getResourceAsString("clds/util/file.xml");
+ Document document = XmlToolsTest.parseStringToXmlDocument(xml);
+ Node newNode = document.createElement(newNodeTag);
+ newNode.appendChild(document.createTextNode(newNodeText));
+
+ when(mockG2d.getRoot(any(Element.class))).then(a -> a.getArgumentAt(0, Element.class).appendChild(newNode));
+
+ DocumentBuilder db = new DocumentBuilder(document, document);
+ db.pushChangestoDocument(mockG2d, dataElementId);
+ Document actualDocument = db.getGroupingDocument();
+
+ Node addedActualNode = actualDocument.getDocumentElement().getLastChild();
+ String actualDataElementId =
+ addedActualNode.getAttributes().getNamedItem(DocumentBuilder.DATA_ELEMENT_ID_ATTRIBUTE).getTextContent();
+
+ Assert.assertEquals(dataElementId, actualDataElementId);
+ Assert.assertEquals(SVGConstants.SVG_G_TAG, addedActualNode.getNodeName());
+
+ Node addedActualNodeChild = addedActualNode.getLastChild();
+ Assert.assertEquals(newNodeTag, addedActualNodeChild.getNodeName());
+ Assert.assertEquals(newNodeText, addedActualNodeChild.getTextContent());
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/clds/util/file.xml b/src/test/resources/clds/util/file.xml
new file mode 100644
index 00000000..81560bab
--- /dev/null
+++ b/src/test/resources/clds/util/file.xml
@@ -0,0 +1,6 @@
+<note>
+ <to>Tove</to>
+ <from>Jani</from>
+ <heading>Reminder</heading>
+ <body>Message body</body>
+</note>