Add unit tests for tosca element type validation 86/136086/1
authorrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 3 Oct 2023 13:28:09 +0000 (14:28 +0100)
committerrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 3 Oct 2023 13:28:09 +0000 (14:28 +0100)
Issue-ID: POLICY-4830
Signed-off-by: rameshiyer27 <ramesh.murugan.iyer@est.tech>
Change-Id: I4357204daddf256298351bbd3d35ffa9e640e7bf

models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AcDefinitionProviderTest.java

index 2d0803a..78095c9 100644 (file)
@@ -53,7 +53,9 @@ class AcDefinitionProviderTest {
             "clamp/acm/test/tosca-template-additional-properties.yaml";
 
     private static final String ELEMENT_NAME = "org.onap.policy.clamp.acm.AutomationCompositionElement";
+    private static final String INVALID_ELEMENT_NAME = "dummyElement";
     private static final String NODE_TYPE = "org.onap.policy.clamp.acm.AutomationComposition";
+    private static final String INVALID_NODE_TYPE = "dummyNodeTypeName";
 
     private static ToscaServiceTemplate inputServiceTemplate;
 
@@ -97,6 +99,32 @@ class AcDefinitionProviderTest {
         assertThat(result.getServiceTemplate().getMetadata()).isNotNull();
     }
 
+    @Test
+    void testToscaWithInvalidElement() {
+        var docServiceTemplate = new DocToscaServiceTemplate(inputServiceTemplate);
+        var acmDefinition = getAcDefinition(docServiceTemplate);
+        var acmDefinitionRepository = mock(AutomationCompositionDefinitionRepository.class);
+
+        var acDefinitionProvider = new AcDefinitionProvider(acmDefinitionRepository);
+
+        assertThatThrownBy(() -> acDefinitionProvider
+                .createAutomationCompositionDefinition(inputServiceTemplate, INVALID_ELEMENT_NAME, NODE_TYPE))
+                .hasMessage("NodeTemplate with element type " + INVALID_ELEMENT_NAME + " must exist!");
+    }
+
+    @Test
+    void testToscaWithInvalidNodeType() {
+        var docServiceTemplate = new DocToscaServiceTemplate(inputServiceTemplate);
+        var acmDefinition = getAcDefinition(docServiceTemplate);
+        var acmDefinitionRepository = mock(AutomationCompositionDefinitionRepository.class);
+
+        var acDefinitionProvider = new AcDefinitionProvider(acmDefinitionRepository);
+
+        assertThatThrownBy(() -> acDefinitionProvider
+                .createAutomationCompositionDefinition(inputServiceTemplate, ELEMENT_NAME, INVALID_NODE_TYPE))
+                .hasMessageContaining("NodeTemplate with type " + INVALID_NODE_TYPE + " must exist!");
+    }
+
     @Test
     void testCreateServiceTemplateWithMetadata() {
         inputServiceTemplate.setMetadata(new HashMap<>());