Fix sonar issue
[nonrtric/plt/rappmanager.git] / rapp-manager-dme / src / test / java / com / oransc / rappmanager / dme / service / DmeDeployerTest.java
index 5b97b2d..f3080e5 100755 (executable)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START======================================================================
  * Copyright (C) 2023 Nordix Foundation. All rights reserved.
+ * Copyright (C) 2024 OpenInfra Foundation Europe. 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.
@@ -18,8 +19,8 @@
 
 package com.oransc.rappmanager.dme.service;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.springframework.test.web.client.match.MockRestRequestMatchers.method;
@@ -30,6 +31,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.oransc.rappmanager.dme.configuration.DmeConfiguration;
 import com.oransc.rappmanager.models.cache.RappCacheService;
+import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration;
 import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler;
 import com.oransc.rappmanager.models.rapp.Rapp;
 import com.oransc.rappmanager.models.rapp.RappDmeResourceBuilder;
@@ -51,6 +53,7 @@ import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
+import org.junit.jupiter.params.provider.ValueSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -63,8 +66,8 @@ import org.springframework.test.web.client.MockRestServiceServer;
 import org.springframework.web.client.RestTemplate;
 
 @SpringBootTest(classes = {DmeConfiguration.class, DmeDeployer.class, BeanTestConfiguration.class,
-        RappCsarConfigurationHandler.class, RappCacheService.class, RappInstanceStateMachineConfig.class,
-        RappInstanceStateMachine.class})
+        RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, RappCacheService.class,
+        RappInstanceStateMachineConfig.class, RappInstanceStateMachine.class})
 @TestInstance(TestInstance.Lifecycle.PER_CLASS)
 @AutoConfigureMockMvc
 class DmeDeployerTest {
@@ -76,8 +79,6 @@ class DmeDeployerTest {
     RestTemplate restTemplate;
     @Autowired
     DmeConfiguration dmeConfiguration;
-    @SpyBean
-    RappInstanceStateMachine rappInstanceStateMachine;
 
     RappDmeResourceBuilder rappDmeResourceBuilder = new RappDmeResourceBuilder();
 
@@ -103,7 +104,8 @@ class DmeDeployerTest {
 
     @ParameterizedTest
     @MethodSource("getSuccessParamsWithUnavailableInfoTypes")
-    void testPrimeRappSuccessWithUnavailableInfoType(String rappFile, boolean result) throws JsonProcessingException {
+    void testPrimeRappSuccessWithUnavailableInfoType(String rappFile, boolean isSuccess)
+            throws JsonProcessingException {
         RappResources rappResources = rappDmeResourceBuilder.getResources();
         Rapp rapp = getRapp(Optional.empty());
         rapp.setPackageName(rappFile);
@@ -116,7 +118,11 @@ class DmeDeployerTest {
         if (rappFile.equals(validRappFileNewInfoType)) {
             mockServer.verify();
         }
-        assertEquals(rapp.getIsDmeValid(), result);
+        if (isSuccess) {
+            assertNull(rapp.getReason());
+        } else {
+            assertNotNull(rapp.getReason());
+        }
     }
 
     private static Stream<Arguments> getSuccessParamsWithUnavailableInfoTypes() {
@@ -124,8 +130,8 @@ class DmeDeployerTest {
     }
 
     @ParameterizedTest
-    @MethodSource("getSuccessParamsWithAvailableInfoTypes")
-    void testPrimeRappSuccessWithValidInfoType(String rappFile, boolean result) throws JsonProcessingException {
+    @ValueSource(strings = {validRappFile, validRappFileNewInfoType})
+    void testPrimeRappSuccessWithValidInfoType(String rappFile) throws JsonProcessingException {
         RappResources rappResources = rappDmeResourceBuilder.getResources();
         Rapp rapp = getRapp(Optional.empty());
         rapp.setPackageName(rappFile);
@@ -138,11 +144,17 @@ class DmeDeployerTest {
         if (rappFile.equals(validRappFileNewInfoType)) {
             mockServer.verify();
         }
-        assertEquals(rapp.getIsDmeValid(), result);
+        assertNull(rapp.getReason());
     }
 
-    private static Stream<Arguments> getSuccessParamsWithAvailableInfoTypes() {
-        return Stream.of(Arguments.of(validRappFile, true), Arguments.of(validRappFileNewInfoType, true));
+    @Test
+    void testPrimeRappWithoutDme() {
+        RappResources rappResources = rappDmeResourceBuilder.getResources();
+        rappResources.setDme(null);
+        Rapp rapp = getRapp(Optional.empty());
+        rapp.setPackageName(validRappFile);
+        rapp.setRappResources(rappResources);
+        assertTrue(dmeDeployer.primeRapp(rapp));
     }
 
     @Test
@@ -156,86 +168,21 @@ class DmeDeployerTest {
         Rapp rapp = getRapp(Optional.empty());
         rapp.setRappResources(rappResources);
         assertFalse(dmeDeployer.primeRapp(rapp));
-        assertFalse(rapp.getIsDmeValid());
+        assertFalse(rapp.getReason().isEmpty());
     }
 
     @Test
     void testDeprimeRapp() {
         Rapp rapp = getRapp(Optional.empty());
-        rapp.setIsDmeValid(true);
         assertTrue(dmeDeployer.deprimeRapp(rapp));
-        assertNull(rapp.getIsDmeValid());
+        assertNull(rapp.getReason());
     }
 
     @Test
     void testDeployrAppInstanceSuccess() {
         Rapp rapp = getRapp(Optional.empty());
         RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypesProducer().toArray()[0].toString(), true);
-        getMockServerClientCreateInfoProducer(rappInstance.getDme().getInfoProducer(), true);
-        getMockServerClientCreateInfoConsumer(rappInstance.getDme().getInfoConsumer(), true);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertTrue(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployrAppInstanceSuccessWithoutConsumer() {
-        Rapp rapp = getRapp(Optional.empty());
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        rappInstance.getDme().setInfoTypeConsumer(null);
-        rappInstance.getDme().setInfoConsumer(null);
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypesProducer().toArray()[0].toString(), true);
-        getMockServerClientCreateInfoProducer(rappInstance.getDme().getInfoProducer(), true);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
         assertTrue(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployrAppInstanceWithoutProducer() {
-        Rapp rapp = getRapp(Optional.empty());
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        rappInstance.getDme().setInfoTypesProducer(null);
-        rappInstance.getDme().setInfoProducer(null);
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypeConsumer(), true);
-        getMockServerClientCreateInfoConsumer(rappInstance.getDme().getInfoConsumer(), true);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertTrue(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployrAppInstanceFailureWithInfoType() {
-        Rapp rapp = getRapp(Optional.empty());
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypesProducer().toArray()[0].toString(), false);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertFalse(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployrAppInstanceFailureWithInfoProducer() {
-        Rapp rapp = getRapp(Optional.empty());
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypesProducer().toArray()[0].toString(), true);
-        getMockServerClientCreateInfoProducer(rappInstance.getDme().getInfoProducer(), false);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertFalse(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployrAppInstanceFailureWithInfoConsumer() {
-        Rapp rapp = getRapp(Optional.empty());
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientCreateInfoType(rappInstance.getDme().getInfoTypesProducer().toArray()[0].toString(), true);
-        getMockServerClientCreateInfoProducer(rappInstance.getDme().getInfoProducer(), true);
-        getMockServerClientCreateInfoConsumer(rappInstance.getDme().getInfoConsumer(), false);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertFalse(dmeDeployer.deployRappInstance(rapp, rappInstance));
-        mockServer.verify();
     }
 
     @Test
@@ -243,108 +190,11 @@ class DmeDeployerTest {
         Rapp rapp = getRapp(Optional.empty());
         rapp.setState(RappState.PRIMED);
         RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientDeleteInfoConsumer(rappInstance.getDme().getInfoConsumer(), true);
-        getMockServerClientDeleteInfoProducer(rappInstance.getDme().getInfoProducer(), true);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
         assertTrue(dmeDeployer.undeployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-
-    @Test
-    void testUndeployrAppInstanceFailureWithInfoProducer() {
-        Rapp rapp = getRapp(Optional.empty());
-        rapp.setState(RappState.PRIMED);
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientDeleteInfoConsumer(rappInstance.getDme().getInfoConsumer(), true);
-        getMockServerClientDeleteInfoProducer(rappInstance.getDme().getInfoProducer(), false);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertFalse(dmeDeployer.undeployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testUndeployrAppInstanceFailureWithInfoConsumer() {
-        Rapp rapp = getRapp(Optional.empty());
-        rapp.setState(RappState.PRIMED);
-        RappInstance rappInstance = rappDmeResourceBuilder.getRappInstance();
-        getMockServerClientDeleteInfoConsumer(rappInstance.getDme().getInfoConsumer(), false);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        assertFalse(dmeDeployer.undeployRappInstance(rapp, rappInstance));
-        mockServer.verify();
-    }
-
-    @Test
-    void testCreateInfoTypeFailureInvalidInfoType() {
-        Rapp rapp = getRapp(Optional.empty());
-        assertFalse(dmeDeployer.createInfoTypes(rapp, null));
-    }
-
-    @Test
-    void testCreateInfoTypeFailureInvalidInfoProducer() {
-        Rapp rapp = getRapp(Optional.empty());
-        assertFalse(dmeDeployer.createInfoProducer(rapp, ""));
-    }
-
-    @Test
-    void testCreateInfoTypeFailureInvalidInfoConsumer() {
-        Rapp rapp = getRapp(Optional.empty());
-        assertFalse(dmeDeployer.createInfoConsumer(rapp, ""));
     }
 
     Rapp getRapp(Optional<UUID> rappOptional) {
         return Rapp.builder().rappId(rappOptional.orElse(UUID.randomUUID())).name("").packageName(validRappFile)
                        .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
     }
-
-    void getMockServerClientCreateInfoType(String infoType, boolean isSuccess) {
-        if (isSuccess) {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_TYPE, infoType)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.CREATED));
-        } else {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_TYPE, infoType)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        }
-    }
-
-    void getMockServerClientCreateInfoProducer(String infoProducer, boolean isSuccess) {
-        if (isSuccess) {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_PRODUCER, infoProducer)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.CREATED));
-        } else {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_PRODUCER, infoProducer)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        }
-    }
-
-    void getMockServerClientCreateInfoConsumer(String infoConsumer, boolean isSuccess) {
-        if (isSuccess) {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_CONSUMER, infoConsumer)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.CREATED));
-        } else {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_CONSUMER, infoConsumer)))
-                    .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        }
-    }
-
-    void getMockServerClientDeleteInfoProducer(String infoProducer, boolean isSuccess) {
-        if (isSuccess) {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_PRODUCER, infoProducer)))
-                    .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.NO_CONTENT));
-        } else {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_PRODUCER, infoProducer)))
-                    .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        }
-    }
-
-    void getMockServerClientDeleteInfoConsumer(String infoConsumer, boolean isSuccess) {
-        if (isSuccess) {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_CONSUMER, infoConsumer)))
-                    .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.NO_CONTENT));
-        } else {
-            mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_INFO_CONSUMER, infoConsumer)))
-                    .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        }
-    }
-
 }