Unit tests for sdc-be-utils 47/88347/3
authorTomasz Golabek <tomasz.golabek@nokia.com>
Thu, 23 May 2019 12:33:40 +0000 (14:33 +0200)
committerYuli Shlosberg <ys9693@att.com>
Sun, 2 Jun 2019 11:18:51 +0000 (11:18 +0000)
utils from common-be covered by tests

Change-Id: I63cda35fc00c3c9c751302babea04ad8c3c144eb
Issue-ID: SDC-2326
Signed-off-by: Tomasz Golabek <tomasz.golabek@nokia.com>
common-be/pom.xml
common-be/src/main/java/org/openecomp/sdc/be/utils/PropertyDefinitionUtils.java
common-be/src/main/java/org/openecomp/sdc/be/utils/TypeUtils.java
common-be/src/test/java/org/openecomp/sdc/be/utils/CommonBeUtilsTest.java
common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyDefinitionUtilsTest.java [new file with mode: 0644]
common-be/src/test/java/org/openecomp/sdc/be/utils/TypeUtilsTest.java [new file with mode: 0644]

index afd2834..c995ced 100644 (file)
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-       <modelVersion>4.0.0</modelVersion>
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
 
-       <groupId>org.openecomp.sdc.be</groupId>
-       <artifactId>common-be</artifactId>
+  <groupId>org.openecomp.sdc.be</groupId>
+  <artifactId>common-be</artifactId>
 
-       <parent>
-               <groupId>org.openecomp.sdc</groupId>
-               <artifactId>sdc-main</artifactId>
-               <version>1.5.0-SNAPSHOT</version>
-       </parent>
+  <parent>
+    <groupId>org.openecomp.sdc</groupId>
+    <artifactId>sdc-main</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
 
-       <dependencies>
-               <!-- Common of SD&C -->
-               <dependency>
-                       <groupId>org.openecomp.sdc</groupId>
-                       <artifactId>common-app-api</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
+  <dependencies>
+    <!-- Common of SD&C -->
+    <dependency>
+      <groupId>org.openecomp.sdc</groupId>
+      <artifactId>common-app-api</artifactId>
+      <version>${project.version}</version>
+      <scope>provided</scope>
+    </dependency>
 
-               <dependency>
-                       <groupId>org.apache.commons</groupId>
-                       <artifactId>commons-lang3</artifactId>
-                       <version>${lang3.version}</version>
-                       <scope>provided</scope>
-               </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>${lang3.version}</version>
+      <scope>provided</scope>
+    </dependency>
 
-               <dependency>
-                       <groupId>ch.qos.logback</groupId>
-                       <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-                       <scope>provided</scope>
-               </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback.version}</version>
+      <scope>provided</scope>
+    </dependency>
 
-               <dependency>
-                       <groupId>com.google.guava</groupId>
-                       <artifactId>guava</artifactId>
-                       <version>${guava.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.functionaljava</groupId>
-                       <artifactId>functionaljava</artifactId>
-                       <version>${functionaljava.version}</version>
-                       <scope>provided</scope>
-               </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>${guava.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.functionaljava</groupId>
+      <artifactId>functionaljava</artifactId>
+      <version>${functionaljava.version}</version>
+      <scope>provided</scope>
+    </dependency>
 
-               <dependency>
-                       <groupId>com.fasterxml.jackson.core</groupId>
-                       <artifactId>jackson-databind</artifactId>
-                       <version>${jackson.version}</version>
-                       <scope>provided</scope>
-               </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+      <version>${jackson.version}</version>
+      <scope>provided</scope>
+    </dependency>
 
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <version>${junit.version}</version>
-                       <scope>test</scope>
-               </dependency>
-        <dependency>
-            <groupId>org.onap.sdc.common</groupId>
-            <artifactId>onap-tosca-datatype</artifactId>
-            <version>${tosca.datatype.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-                       <version>${lombok.version}</version>
-        </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>${mockito.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.onap.sdc.common</groupId>
+      <artifactId>onap-tosca-datatype</artifactId>
+      <version>${tosca.datatype.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.projectlombok</groupId>
+      <artifactId>lombok</artifactId>
+      <version>${lombok.version}</version>
+    </dependency>
 
-    </dependencies>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>com.github.sylvainlaurent.maven</groupId>
-                               <artifactId>yaml-json-validator-maven-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>validate</id>
-                                               <phase>validate</phase>
-                                               <goals>
-                                                       <goal>validate</goal>
-                                               </goals>
-                                               <configuration>
-                                                       <validationSets>
-                                                               <validationSet>
-                                                                       <includes>
-                                                                               <include>src/main/resources/**/*.y*ml</include>
-                                                                               <include>src/test/resources/**/*.y*ml</include>
-                                                                       </includes>
-                                                               </validationSet>
-                                                               <validationSet>
-                                                                       <includes>
-                                                                               <include>src/main/resources/**/*.json</include>
-                                                                               <include>src/test/resources/**/*.json</include>
-                                                                       </includes>
-                                                               </validationSet>
-                                                       </validationSets>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>com.github.sylvainlaurent.maven</groupId>
+        <artifactId>yaml-json-validator-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>validate</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>validate</goal>
+            </goals>
+            <configuration>
+              <validationSets>
+                <validationSet>
+                  <includes>
+                    <include>src/main/resources/**/*.y*ml</include>
+                    <include>src/test/resources/**/*.y*ml</include>
+                  </includes>
+                </validationSet>
+                <validationSet>
+                  <includes>
+                    <include>src/main/resources/**/*.json</include>
+                    <include>src/test/resources/**/*.json</include>
+                  </includes>
+                </validationSet>
+              </validationSets>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>
index 92aa832..600401b 100644 (file)
@@ -1,3 +1,22 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdc.be.utils;
 
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
index 7d21afb..576582b 100644 (file)
@@ -1,3 +1,22 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdc.be.utils;
 
 import java.util.Map;
@@ -38,7 +57,7 @@ public class TypeUtils {
 
         private String elementName;
 
-        private ToscaTagNamesEnum(String elementName) {
+        ToscaTagNamesEnum(String elementName) {
             this.elementName = elementName;
         }
 
index dbe17e6..7670913 100644 (file)
@@ -16,6 +16,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
+ * Modifications copyright (c) 2019 Nokia
+ * ================================================================================
  */
 
 package org.openecomp.sdc.be.utils;
@@ -30,7 +32,6 @@ public class CommonBeUtilsTest {
 
        @Test
        public void testCompareAsdcComponentVersions() {
-
                assertTrue(CommonBeUtils.compareAsdcComponentVersions("1.1", "0.15"));
                assertFalse(CommonBeUtils.compareAsdcComponentVersions("0.5", "0.5"));
                assertFalse(CommonBeUtils.compareAsdcComponentVersions("0.5", "0.6"));
@@ -42,9 +43,8 @@ public class CommonBeUtilsTest {
        
        @Test
        public void testConformanceLevelCompare() {
-
                assertTrue(CommonBeUtils.conformanceLevelCompare("1.1", "0.15") > 0);
-        assertEquals(0, CommonBeUtils.conformanceLevelCompare("0.5", "0.5"));
+               assertEquals(0, CommonBeUtils.conformanceLevelCompare("0.5", "0.5"));
                assertTrue(CommonBeUtils.conformanceLevelCompare("0.5", "0.6") < 0);
                assertTrue(CommonBeUtils.conformanceLevelCompare("1.5", "2.6") < 0);
                assertTrue(CommonBeUtils.conformanceLevelCompare("1.5", "1.5.3") < 0);
@@ -52,4 +52,10 @@ public class CommonBeUtilsTest {
                assertTrue(CommonBeUtils.conformanceLevelCompare("0.10", "0.1") > 0);
                assertTrue(CommonBeUtils.conformanceLevelCompare("2", "1.15") > 0);
        }
+
+       @Test
+       public void testGenerateToscaResourceName(){
+               assertEquals(CommonBeUtils.generateToscaResourceName("ANY_RESOURCE", "ANY_RESOURCE_SYSTEM_NAME"),
+                       "org.openecomp.resource.any_resource.ANY_RESOURCE_SYSTEM_NAME");
+       }
 }
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyDefinitionUtilsTest.java b/common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyDefinitionUtilsTest.java
new file mode 100644 (file)
index 0000000..b9f11d3
--- /dev/null
@@ -0,0 +1,101 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2019 Nokia 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.openecomp.sdc.be.utils;
+
+import static java.util.Collections.emptyMap;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+
+public class PropertyDefinitionUtilsTest {
+
+    private static final String NAME = "NAME";
+    private static final String UNIQUE_ID = "UNIQUE_ID";
+    private static final String PROP_NAME = "PROP_NAME";
+    private static final String FIRST = "FIRST";
+    private static final String SECOND = "SECOND";
+    private static final String THIRD = "THIRD";
+
+    @Test
+    public void testConvertListOfProperties() {
+        List<PropertyDataDefinition> inputDataDefinitions = createDataDefinitions();
+        List<PropertyDataDefinition> propertyDataDefinitions = PropertyDefinitionUtils
+            .convertListOfProperties(inputDataDefinitions);
+
+        assertEquals(propertyDataDefinitions.size(), 1);
+        assertEquals(propertyDataDefinitions.get(0).getName(), NAME);
+        assertEquals(propertyDataDefinitions.get(0).getUniqueId(), UNIQUE_ID);
+        assertNotSame(inputDataDefinitions, propertyDataDefinitions);
+        assertEquals(inputDataDefinitions, propertyDataDefinitions);
+        assertNotSame(inputDataDefinitions.get(0), propertyDataDefinitions.get(0));
+        assertEquals(inputDataDefinitions.get(0), propertyDataDefinitions.get(0));
+    }
+
+    @Test
+    public void testResolveGetInputPropertiesForEmptyMap() {
+        Map<String, List<PropertyDataDefinition>> inputProps = PropertyDefinitionUtils
+            .resolveGetInputProperties(null);
+        assertEquals(inputProps, emptyMap());
+    }
+
+    @Test
+    public void testResolveGetInputPropertiesForNotEmptyMap() {
+        Map<String, List<PropertyDataDefinition>> props = new HashMap<>();
+        props.put(FIRST, createDataDefinitions());
+        props.put(SECOND, createDataDefinitions());
+        props.put(THIRD, createDataDefinitionsWithEmptyGetInputValueDefinition());
+        Map<String, List<PropertyDataDefinition>> result = PropertyDefinitionUtils.resolveGetInputProperties(props);
+        assertEquals(result.size(), 3);
+        assertEquals(result.get(FIRST).size(), 1);
+        assertEquals(result.get(FIRST).get(0).getUniqueId(), UNIQUE_ID);
+        assertEquals(result.get(SECOND).size(), 1);
+        assertEquals(result.get(THIRD).size(), 0);
+    }
+
+    private List<PropertyDataDefinition> createDataDefinitions(){
+        ArrayList<PropertyDataDefinition> propertyDataDefinitions = new ArrayList<>();
+        PropertyDataDefinition dataDefinition = new PropertyDataDefinition();
+        dataDefinition.setUniqueId(UNIQUE_ID);
+        dataDefinition.setName(NAME);
+        List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
+        GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
+        getInputValueDataDefinition.setPropName(PROP_NAME);
+        getInputValues.add(getInputValueDataDefinition);
+        dataDefinition.setGetInputValues(getInputValues);
+        propertyDataDefinitions.add(dataDefinition);
+        return propertyDataDefinitions;
+    }
+
+    private List<PropertyDataDefinition> createDataDefinitionsWithEmptyGetInputValueDefinition(){
+        ArrayList<PropertyDataDefinition> propertyDataDefinitions = new ArrayList<>();
+        PropertyDataDefinition dataDefinition = new PropertyDataDefinition();
+        dataDefinition.setUniqueId(UNIQUE_ID);
+        dataDefinition.setName(NAME);
+        propertyDataDefinitions.add(dataDefinition);
+        return propertyDataDefinitions;
+    }
+}
\ No newline at end of file
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/utils/TypeUtilsTest.java b/common-be/src/test/java/org/openecomp/sdc/be/utils/TypeUtilsTest.java
new file mode 100644 (file)
index 0000000..fc5cea4
--- /dev/null
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ * Modifications copyright (c) 2019 Nokia
+ * ================================================================================
+ */
+package org.openecomp.sdc.be.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum;
+
+@RunWith(MockitoJUnitRunner.class)
+public class TypeUtilsTest {
+
+    private static final String ANY_GROUP = "anyGroup";
+
+    @SuppressWarnings("unchecked")
+    private Consumer<String> anyConsumer = (Consumer<String>) Mockito.spy(Consumer.class);
+
+    @Test
+    public void testSetFieldShouldConsumeForJSONContainingParam() {
+        Map<String, Object> toscaJson = new HashMap<>();
+        toscaJson.put(ToscaTagNamesEnum.GROUPS.getElementName(), ANY_GROUP);
+        TypeUtils.setField(toscaJson, ToscaTagNamesEnum.GROUPS, anyConsumer);
+        Mockito.verify(anyConsumer).accept(ANY_GROUP);
+    }
+
+    @Test
+    public void testSetFieldShouldDoNothingForJSONNotContainingParam() {
+        Map<String, Object> toscaJson = new HashMap<>();
+        toscaJson.put(ToscaTagNamesEnum.GROUPS.getElementName(), ANY_GROUP);
+        TypeUtils.setField(toscaJson, ToscaTagNamesEnum.INPUTS, anyConsumer);
+        Mockito.verifyZeroInteractions(anyConsumer);
+    }
+
+}
\ No newline at end of file