Package name modified
[nonrtric/plt/rappmanager.git] / rapp-manager-acm / src / test / java / com / oransc / rappmanager / acm / service / AcmDeployerTest.java
diff --git a/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java b/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java
deleted file mode 100755 (executable)
index b4dd295..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-/*-
- * ============LICENSE_START======================================================================
- * Copyright (C) 2023 Nordix Foundation. 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 com.oransc.rappmanager.acm.service;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.springframework.test.web.client.match.MockRestRequestMatchers.method;
-import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo;
-import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.oransc.rappmanager.acm.configuration.ACMConfiguration;
-import com.oransc.rappmanager.models.cache.RappCacheService;
-import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler;
-import com.oransc.rappmanager.models.rapp.Rapp;
-import com.oransc.rappmanager.models.rapp.RappEvent;
-import com.oransc.rappmanager.models.rapp.RappResourceBuilder;
-import com.oransc.rappmanager.models.rapp.RappResources;
-import com.oransc.rappmanager.models.rapp.RappState;
-import com.oransc.rappmanager.models.rappinstance.RappInstance;
-import com.oransc.rappmanager.models.statemachine.RappInstanceStateMachine;
-import com.oransc.rappmanager.models.statemachine.RappInstanceStateMachineConfig;
-import java.io.IOException;
-import java.util.UUID;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
-import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
-import org.onap.policy.clamp.models.acm.concepts.DeployState;
-import org.onap.policy.clamp.models.acm.concepts.LockState;
-import org.onap.policy.clamp.models.acm.messages.rest.commissioning.CommissioningResponse;
-import org.onap.policy.clamp.models.acm.messages.rest.commissioning.PrimeOrder;
-import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.SpyBean;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.test.web.client.ExpectedCount;
-import org.springframework.test.web.client.MockRestServiceServer;
-import org.springframework.web.client.RestTemplate;
-
-@SpringBootTest(classes = {BeanTestConfiguration.class, ACMConfiguration.class, AcmDeployer.class,
-        RappCsarConfigurationHandler.class, RappCacheService.class, RappInstanceStateMachineConfig.class,
-        RappInstanceStateMachine.class})
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-@AutoConfigureMockMvc
-class AcmDeployerTest {
-
-    MockRestServiceServer mockServer;
-    @SpyBean
-    AcmDeployer acmDeployer;
-    @Autowired
-    RestTemplate restTemplate;
-    @Autowired
-    ACMConfiguration acmConfiguration;
-    @SpyBean
-    RappInstanceStateMachine rappInstanceStateMachine;
-    @Autowired
-    RappCsarConfigurationHandler rappCsarConfigurationHandler;
-
-    RappResourceBuilder rappResourceBuilder = new RappResourceBuilder();
-    private final String validRappFile = "valid-rapp-package.csar";
-    String validCsarFileLocation = "src/test/resources/";
-    ObjectMapper objectMapper = new ObjectMapper();
-    String URI_ACM_COMPOSITIONS, URI_ACM_COMPOSITION, URI_ACM_INSTANCES, URI_ACM_INSTANCE;
-
-    @BeforeAll
-    void initACMURI() {
-        URI_ACM_COMPOSITIONS = acmConfiguration.getBaseUrl() + "compositions";
-        URI_ACM_COMPOSITION = acmConfiguration.getBaseUrl() + "compositions/%s";
-        URI_ACM_INSTANCES = acmConfiguration.getBaseUrl() + "compositions/%s/instances";
-        URI_ACM_INSTANCE = acmConfiguration.getBaseUrl() + "compositions/%s/instances/%s";
-    }
-
-    @BeforeEach
-    public void init() {
-        mockServer = MockRestServiceServer.createServer(restTemplate);
-    }
-
-    @Test
-    void testCreateComposition() throws IOException {
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .rappResources(rappResources).build();
-
-        String compositionPayload = rappCsarConfigurationHandler.getAcmCompositionPayload(rapp);
-
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(UUID.randomUUID());
-        mockServer.expect(ExpectedCount.once(), requestTo(URI_ACM_COMPOSITIONS)).andExpect(method(HttpMethod.POST))
-                .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                    .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
-        CommissioningResponse commissioningResponseActual = acmDeployer.createComposition(compositionPayload);
-        mockServer.verify();
-        assertEquals(commissioningResponseActual.getCompositionId(), commissioningResponseExpected.getCompositionId());
-    }
-
-    @Test
-    void testCreateCompositionFailure() {
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .rappResources(rappResources).build();
-        String compositionPayload = rappCsarConfigurationHandler.getAcmCompositionPayload(rapp);
-        mockServer.expect(ExpectedCount.once(), requestTo(URI_ACM_COMPOSITIONS)).andExpect(method(HttpMethod.POST))
-                .andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-        CommissioningResponse commissioningResponseActual = acmDeployer.createComposition(compositionPayload);
-        mockServer.verify();
-        assertNull(commissioningResponseActual);
-    }
-
-    @Test
-    void testCompositionPriming() {
-        UUID compositionId = UUID.randomUUID();
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.ACCEPTED));
-
-        acmDeployer.primeACMComposition(compositionId, PrimeOrder.PRIME);
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployRappInstance() throws Exception {
-
-        UUID compositionId = UUID.randomUUID();
-        UUID rappId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-        Rapp rapp = Rapp.builder().name(rappId.toString()).packageName(validRappFile).compositionId(compositionId)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
-        InstantiationResponse instantiationResponse = new InstantiationResponse();
-        instantiationResponse.setInstanceId(instanceId);
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCES, compositionId)))
-                .andExpect(method(HttpMethod.POST)).andRespond(
-                        withStatus(HttpStatus.ACCEPTED).contentType(MediaType.APPLICATION_JSON)
-                                .body(objectMapper.writeValueAsString(instantiationResponse)));
-        mockServer.expect(ExpectedCount.once(),
-                        requestTo(acmConfiguration.getBaseUrl() + "compositions/" + compositionId + "/instances/" + instanceId))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.ACCEPTED));
-        boolean rappDeployStateActual = acmDeployer.deployRappInstance(rapp, rappResourceBuilder.getRappInstance());
-        assertTrue(rappDeployStateActual);
-        mockServer.verify();
-    }
-
-    @Test
-    void testDeployRappInstanceFailure() throws Exception {
-        UUID compositionId = UUID.randomUUID();
-        UUID rappId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-        Rapp rapp = Rapp.builder().name(rappId.toString()).packageName(validRappFile).compositionId(compositionId)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
-        InstantiationResponse instantiationResponse = new InstantiationResponse();
-        instantiationResponse.setInstanceId(instanceId);
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCES, compositionId)))
-                .andExpect(method(HttpMethod.POST)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-
-        boolean rappDeployStateActual = acmDeployer.deployRappInstance(rapp, rappResourceBuilder.getRappInstance());
-        mockServer.verify();
-        assertFalse(rappDeployStateActual);
-    }
-
-    @Test
-    void testUndeployRappInstance() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        UUID rappId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-        Rapp rapp = Rapp.builder().rappId(rappId).name("").packageName(validRappFile).compositionId(compositionId)
-                            .state(RappState.PRIMED).build();
-
-        expectAcmGetInstanceToReturnState(compositionId, instanceId, DeployState.DEPLOYED, LockState.LOCKED,
-                ExpectedCount.once());
-
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCE, compositionId, instanceId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.ACCEPTED));
-
-        expectAcmGetInstanceToReturnState(compositionId, instanceId, DeployState.UNDEPLOYED, LockState.UNLOCKED,
-                ExpectedCount.once());
-
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCE, compositionId, instanceId)))
-                .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.NO_CONTENT));
-
-        RappInstance rappInstance = rappResourceBuilder.getRappInstance();
-        rappInstance.getAcm().setAcmInstanceId(instanceId);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        boolean rappUndeployStateActual = acmDeployer.undeployRappInstance(rapp, rappInstance);
-        mockServer.verify();
-        assertTrue(rappUndeployStateActual);
-    }
-
-    @Test
-    void testUndeployRappInstanceFailure() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        UUID rappId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-        Rapp rapp = Rapp.builder().name(rappId.toString()).packageName(validRappFile).compositionId(compositionId)
-                            .state(RappState.PRIMED).build();
-
-        expectAcmGetInstanceToReturnState(compositionId, instanceId, DeployState.DEPLOYED, LockState.LOCKED,
-                ExpectedCount.once());
-
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCE, compositionId, instanceId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.ACCEPTED));
-
-        expectAcmGetInstanceToReturnState(compositionId, instanceId, DeployState.UNDEPLOYING, LockState.UNLOCKING,
-                ExpectedCount.manyTimes());
-
-        RappInstance rappInstance = rappResourceBuilder.getRappInstance();
-        rappInstance.getAcm().setAcmInstanceId(instanceId);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        boolean rappUndeployStateActual = acmDeployer.undeployRappInstance(rapp, rappInstance);
-        mockServer.verify();
-        assertFalse(rappUndeployStateActual);
-    }
-
-    @Test
-    void testSyncRappInstanceStatus() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-        expectAcmGetInstanceToReturnState(compositionId, instanceId, DeployState.UNDEPLOYING, LockState.UNLOCKING,
-                ExpectedCount.once());
-        RappInstance rappInstance = rappResourceBuilder.getRappInstance();
-        rappInstance.getAcm().setAcmInstanceId(instanceId);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        acmDeployer.syncRappInstanceStatus(compositionId, rappInstance);
-        mockServer.verify();
-        verify(rappInstanceStateMachine, times(1)).sendRappInstanceEvent(rappInstance, RappEvent.UNDEPLOYING);
-    }
-
-    @Test
-    void testSyncRappStatusFailure() {
-        UUID compositionId = UUID.randomUUID();
-        UUID instanceId = UUID.randomUUID();
-
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCE, compositionId, instanceId)))
-                .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
-
-        RappInstance rappInstance = rappResourceBuilder.getRappInstance();
-        rappInstance.getAcm().setAcmInstanceId(instanceId);
-        rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
-        acmDeployer.syncRappInstanceStatus(compositionId, rappInstance);
-        mockServer.verify();
-        verify(rappInstanceStateMachine, never()).sendRappInstanceEvent(any(), any());
-    }
-
-    @Test
-    void testPrimeRapp() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .compositionId(compositionId).rappResources(rappResources).build();
-
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(compositionId);
-        mockServer.expect(ExpectedCount.once(), requestTo(URI_ACM_COMPOSITIONS)).andExpect(method(HttpMethod.POST))
-                .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                    .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.ACCEPTED));
-        boolean primeRapp = acmDeployer.primeRapp(rapp);
-        mockServer.verify();
-        assertTrue(primeRapp);
-    }
-
-    @Test
-    void testPrimeRappFailure() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .compositionId(compositionId).rappResources(rappResources).build();
-
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(compositionId);
-        mockServer.expect(ExpectedCount.once(), requestTo(URI_ACM_COMPOSITIONS)).andExpect(method(HttpMethod.POST))
-                .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                    .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.INTERNAL_SERVER_ERROR));
-        boolean primeRapp = acmDeployer.primeRapp(rapp);
-        mockServer.verify();
-        assertFalse(primeRapp);
-        assertEquals(RappState.COMMISSIONED, rapp.getState());
-    }
-
-    @Test
-    void testDeprimeRapp() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .compositionId(compositionId).rappResources(rappResources).build();
-
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(compositionId);
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.OK));
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.DELETE)).andRespond(
-                        withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
-
-        boolean deprimeRapp = acmDeployer.deprimeRapp(rapp);
-        mockServer.verify();
-        assertTrue(deprimeRapp);
-    }
-
-    @Test
-    void testDeprimeFailureRapp() {
-        UUID compositionId = UUID.randomUUID();
-        RappResources rappResources = rappResourceBuilder.getResources();
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
-                            .compositionId(compositionId).rappResources(rappResources).build();
-
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.PUT)).andRespond(withStatus(HttpStatus.OK));
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.INTERNAL_SERVER_ERROR));
-
-        boolean deprimeRapp = acmDeployer.deprimeRapp(rapp);
-        mockServer.verify();
-        assertFalse(deprimeRapp);
-    }
-
-    @Test
-    void testDeprimeExceptionRapp() {
-        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
-                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
-        boolean deprimeRapp = acmDeployer.deprimeRapp(rapp);
-        assertFalse(deprimeRapp);
-    }
-
-    @Test
-    void testDeleteComposition() throws JsonProcessingException {
-        UUID compositionId = UUID.randomUUID();
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(compositionId);
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.DELETE)).andRespond(
-                        withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
-        CommissioningResponse commissioningResponse = acmDeployer.deleteComposition(compositionId);
-        mockServer.verify();
-        assertEquals(commissioningResponse.getCompositionId(), compositionId);
-    }
-
-    @Test
-    void testDeleteCompositionFailure() {
-        UUID compositionId = UUID.randomUUID();
-        CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
-        commissioningResponseExpected.setCompositionId(compositionId);
-        mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_COMPOSITION, compositionId)))
-                .andExpect(method(HttpMethod.DELETE)).andRespond(withStatus(HttpStatus.INTERNAL_SERVER_ERROR));
-        CommissioningResponse commissioningResponse = acmDeployer.deleteComposition(compositionId);
-        mockServer.verify();
-        assertNull(commissioningResponse);
-    }
-
-    void expectAcmGetInstanceToReturnState(UUID compositionId, UUID instanceId, DeployState deployState,
-            LockState lockState, ExpectedCount expectedCount) throws JsonProcessingException {
-        AutomationComposition automationCompositionDeployed = new AutomationComposition();
-        automationCompositionDeployed.setCompositionId(compositionId);
-        automationCompositionDeployed.setInstanceId(instanceId);
-        automationCompositionDeployed.setDeployState(deployState);
-        automationCompositionDeployed.setLockState(lockState);
-
-        mockServer.expect(expectedCount, requestTo(String.format(URI_ACM_INSTANCE, compositionId, instanceId)))
-                .andExpect(method(HttpMethod.GET)).andRespond(
-                        withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
-                                .body(objectMapper.writeValueAsString(automationCompositionDeployed)));
-    }
-}