X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=rapp-manager-dme%2Fsrc%2Ftest%2Fjava%2Fcom%2Foransc%2Frappmanager%2Fdme%2Fservice%2FDmeDeployerTest.java;h=f3080e554e5efd364770eb11a4f580adb5ce3d89;hb=HEAD;hp=5b97b2ddd800a2d62f8eef5cd87b0468548c3811;hpb=b45f4856cd283f8b9e3e3372a80767145db6b554;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java index 5b97b2d..f3080e5 100755 --- a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java +++ b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java @@ -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 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 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 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)); - } - } - }