diff options
Diffstat (limited to 'adapters/mso-adapter-utils/src/test')
11 files changed, 269 insertions, 391 deletions
diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/EmbeddedMariaDbConfig.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/EmbeddedMariaDbConfig.java index d688960a1c..c1705508ce 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/EmbeddedMariaDbConfig.java +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/EmbeddedMariaDbConfig.java @@ -24,7 +24,7 @@ import ch.vorburger.exec.ManagedProcessException; import ch.vorburger.mariadb4j.DBConfigurationBuilder; import ch.vorburger.mariadb4j.springframework.MariaDB4jSpringService; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; +import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsRefactorTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsRefactorTest.java deleted file mode 100644 index c3777ca810..0000000000 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsRefactorTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.adapter_utils.tests; - - -import org.apache.http.HttpHeaders; -import org.apache.http.HttpStatus; -import org.junit.Before; -import org.junit.Test; -import org.onap.so.BaseTest; -import org.onap.so.db.catalog.beans.AuthenticationType; -import org.onap.so.db.catalog.beans.CloudIdentity; -import org.onap.so.db.catalog.beans.CloudSite; -import org.onap.so.db.catalog.beans.ServerType; -import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound; -import org.onap.so.openstack.utils.MsoHeatUtils; -import org.springframework.beans.factory.annotation.Autowired; - -import javax.ws.rs.core.MediaType; -import java.io.IOException; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static org.junit.Assert.assertEquals; - -/**PoConfigTest - * This class implements test methods of the MsoHeatUtils - * - * - */ -public class MsoHeatUtilsRefactorTest extends BaseTest { - - @Autowired - private MsoHeatUtils msoHeatUtils; - - @Before - public void init() throws IOException { - CloudIdentity identity = new CloudIdentity(); - - identity.setId("MTN13"); - identity.setMsoId("m93945"); - identity.setMsoPass("93937EA01B94A10A49279D4572B48369"); - identity.setAdminTenant("admin"); - identity.setMemberRole("admin"); - identity.setTenantMetadata(true); - identity.setIdentityUrl("http://localhost:28090/v2.0"); - identity.setIdentityAuthenticationType(AuthenticationType.USERNAME_PASSWORD); - - CloudSite cloudSite = new CloudSite(); - cloudSite.setId("MTN13"); - cloudSite.setCloudVersion("3.0"); - cloudSite.setClli("MDT13"); - cloudSite.setRegionId("MTN13"); - identity.setIdentityServerType(ServerType.KEYSTONE); - cloudSite.setIdentityService(identity); - - - stubFor(get(urlPathEqualTo("/cloudSite/DEFAULT")).willReturn(aResponse() - .withBody(getBody(mapper.writeValueAsString(cloudSite),wireMockPort, "")) - .withHeader(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON) - .withStatus(HttpStatus.SC_OK))); - stubFor(get(urlPathEqualTo("/cloudIdentity/MTN13")).willReturn(aResponse() - .withBody(getBody(mapper.writeValueAsString(identity),wireMockPort, "")) - .withHeader(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON) - .withStatus(HttpStatus.SC_OK))); - } - - @Test - public final void testGetKeystoneUrl() throws MsoCloudSiteNotFound { - String keyUrl = msoHeatUtils.getCloudSiteKeystoneUrl("DAN"); - assertEquals("http://localhost:28090/v2.0", keyUrl); - } -} diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsTest.java deleted file mode 100644 index abb0a10af5..0000000000 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.adapter_utils.tests; - -import java.util.HashMap; - -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.so.TestApplication; -import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound; -import org.onap.so.openstack.exceptions.MsoException; -import org.onap.so.openstack.exceptions.MsoIOException; -import org.onap.so.openstack.exceptions.MsoStackAlreadyExists; -import org.onap.so.openstack.exceptions.MsoTenantNotFound; -import org.onap.so.openstack.utils.MsoCommonUtils; -import org.onap.so.openstack.utils.MsoHeatUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -import com.woorea.openstack.heat.model.CreateStackParam; - -/** - * This class implements test methods of the MsoHeatUtils - * - * - */ -@RunWith(SpringRunner.class) -@SpringBootTest(classes = TestApplication.class) -@ActiveProfiles("test") -@Ignore -public class MsoHeatUtilsTest extends MsoCommonUtils { - @Autowired - private MsoHeatUtils msoHeatUtils; - - @Test - public final void testCreateStackBadCloudConfig() - throws MsoStackAlreadyExists, MsoTenantNotFound, MsoException, MsoCloudSiteNotFound { - try { - msoHeatUtils.createStack("DOESNOTEXIST", "test", "stackName", "test", new HashMap<String, Object>(), - Boolean.TRUE, 10); - } catch (MsoCloudSiteNotFound e) { - - } catch (java.lang.NullPointerException npe) { - - } - - } - - @Test - public final void testCreateStackFailedConnectionHeatClient() - throws MsoStackAlreadyExists, MsoTenantNotFound, MsoException, MsoCloudSiteNotFound { - try { - msoHeatUtils.createStack("MT", "test", "stackName", "test", new HashMap<String, Object>(), Boolean.TRUE, - 10); - } catch (MsoIOException e) { - - } - - } - - @Test - public final void testCreateStackFailedConnection() - throws MsoStackAlreadyExists, MsoTenantNotFound, MsoException, MsoCloudSiteNotFound { - try { - msoHeatUtils.createStack("MT", "test", "stackName", "test", new HashMap<String, Object>(), Boolean.TRUE, - 10); - } catch (MsoIOException e) { - - } - - } - - @Test - public final void createStackSuccessWithEnvironment() throws MsoException { - try { - msoHeatUtils.createStack("MT", "test", "stackName", "test", new HashMap<String, Object>(), Boolean.TRUE, 10, - "environment"); - } catch (MsoIOException e) { - - } - - } - - @Test - public final void createStackSuccessWithFiles() throws MsoException { - try { - msoHeatUtils.createStack("MT", "test", "stackName", "test", new HashMap<String, Object>(), Boolean.TRUE, 10, - "environment", new HashMap<String, Object>()); - } catch (MsoIOException e) { - - } - - } - - @Test - public final void createStackSuccessWithHeatFiles() throws MsoException { - try { - msoHeatUtils.createStack("MT", "test", "stackName", "test", new HashMap<String, Object>(), Boolean.TRUE, 10, - "environment", new HashMap<String, Object>(), new HashMap<String, Object>()); - } catch (MsoIOException e) { - - } - } - - @Test - public final void requestToStringBuilderTest() { - CreateStackParam param = new CreateStackParam(); - param.setDisableRollback(false); - param.setEnvironment("environment"); - param.setFiles(new HashMap<String, Object>()); - param.setParameters(new HashMap<>()); - param.setStackName("stackName"); - param.setTemplate("template"); - param.setTemplateUrl("http://templateUrl"); - param.setTimeoutMinutes(1); - - msoHeatUtils.requestToStringBuilder(param); - } -} diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java deleted file mode 100644 index 50fc17511b..0000000000 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * 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.onap.so.adapter_utils.tests; - -import static org.junit.Assert.fail; -import static org.mockito.Mockito.when; - -import java.util.HashMap; -import java.util.Map; - -import java.util.Optional; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -import org.onap.so.cloud.CloudConfig; -import org.onap.so.db.catalog.beans.CloudIdentity; -import org.onap.so.db.catalog.beans.CloudSite; -import org.onap.so.db.catalog.beans.ServerType; -import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound; -import org.onap.so.openstack.exceptions.MsoException; -import org.onap.so.openstack.exceptions.MsoIOException; -import org.onap.so.openstack.utils.MsoHeatUtilsWithUpdate; -import org.onap.so.utils.CryptoUtils; - -import com.woorea.openstack.base.client.OpenStackConnectException; - -@RunWith(MockitoJUnitRunner.class) -public class MsoHeatUtilsWithUpdateTest { - - - @Mock - private CloudConfig cloudConfig; - @InjectMocks - private MsoHeatUtilsWithUpdate util=new MsoHeatUtilsWithUpdate(); - - private CloudSite cloudSite; - - @Before - public void init () { - cloudSite = new CloudSite (); - cloudSite.setRegionId("cloud"); - CloudIdentity cloudIdentity = new CloudIdentity (); - cloudIdentity.setIdentityServerType(ServerType.KEYSTONE); - cloudIdentity.setIdentityUrl("toto"); - cloudIdentity.setMsoPass (CryptoUtils.encryptCloudConfigPassword("mockId")); - cloudSite.setIdentityService (cloudIdentity); - when(cloudConfig.getCloudSite("cloud")).thenReturn (Optional.of(cloudSite)); - when(cloudConfig.getCloudSite("none")).thenReturn (Optional.empty()); - } - - @Test - @Ignore - public void testUpdateStack () { - // Heat heat = Mockito.mock (Heat.class); - Map <String, Object> stackInputs = new HashMap <> (); - try { - util.updateStack ("none", "tenantId", "stackName", "heatTemplate", stackInputs, false, 1); - } catch (MsoException e) { - if (e instanceof MsoCloudSiteNotFound) { - // Ok - } else { - e.printStackTrace (); - fail ("Exception caught"); - } - } - try { - util.updateStack ("cloud", "tenantId", "stackName", "heatTemplate", stackInputs, false, 1); - } catch (MsoException e) { - if (e instanceof MsoIOException && e.getCause () != null - && e.getCause () instanceof OpenStackConnectException) { - // Ok, we were able to go up to the connection to OpenStack - } else { - e.printStackTrace (); - fail ("Exception caught"); - } - } - try { - util.updateStack ("cloud", "tenantId", "stackName", "heatTemplate", stackInputs, false, 1, "environment"); - } catch (MsoException e) { - if (e instanceof MsoIOException && e.getCause () != null - && e.getCause () instanceof OpenStackConnectException) { - // Ok, we were able to go up to the connection to OpenStack - } else { - e.printStackTrace (); - fail ("Exception caught"); - } - } - try { - util.updateStack ("cloud", "tenantId", "stackName", "heatTemplate", stackInputs, false, 1, "environment", null); - } catch (MsoException e) { - if (e instanceof MsoIOException && e.getCause () != null - && e.getCause () instanceof OpenStackConnectException) { - // Ok, we were able to go up to the connection to OpenStack - } else { - e.printStackTrace (); - fail ("Exception caught"); - } - } - try { - util.updateStack ("cloud", "tenantId", "stackName", "heatTemplate", stackInputs, false, 1, "environment", null, null); - } catch (MsoException e) { - if (e instanceof MsoIOException && e.getCause () != null - && e.getCause () instanceof OpenStackConnectException) { - // Ok, we were able to go up to the connection to OpenStack - } else { - e.printStackTrace (); - fail ("Exception caught"); - } - } - } -} diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloud/authentication/AuthenticationMethodTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloud/authentication/AuthenticationMethodTest.java index 95e4352e05..a5abe75af2 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloud/authentication/AuthenticationMethodTest.java +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloud/authentication/AuthenticationMethodTest.java @@ -20,19 +20,23 @@ package org.onap.so.cloud.authentication; +import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.so.BaseTest; +import org.onap.so.cloud.authentication.models.RackspaceAuthentication; import org.onap.so.db.catalog.beans.AuthenticationType; import org.onap.so.db.catalog.beans.CloudIdentity; -import org.onap.so.cloud.authentication.models.RackspaceAuthentication; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; +import org.onap.so.utils.CryptoUtils; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.woorea.openstack.keystone.model.Authentication; import com.woorea.openstack.keystone.model.authentication.UsernamePassword; @@ -42,10 +46,9 @@ import com.woorea.openstack.keystone.model.authentication.UsernamePassword; * only are tested. * */ -public class AuthenticationMethodTest extends BaseTest { +public class AuthenticationMethodTest { - @Autowired - private AuthenticationMethodFactory authenticationMethodFactory; + private AuthenticationMethodFactory authenticationMethodFactory = new AuthenticationMethodFactory(); /** * */ @@ -99,4 +102,20 @@ public class AuthenticationMethodTest extends BaseTest { assertTrue(UsernamePassword.class.equals(auth.getClass())); } + + @Test + public void getAuthenticationForV3Test() throws JsonParseException, JsonMappingException, IOException { + + CloudIdentity identity = new CloudIdentity(); + identity.setMsoId("my-username"); + identity.setMsoPass(CryptoUtils.encryptCloudConfigPassword("my-password")); + identity.setProjectDomainName("test-domain"); + identity.setUserDomainName("user-domain"); + ObjectMapper mapper = new ObjectMapper(); + com.woorea.openstack.keystone.v3.model.Authentication expected = + mapper.readValue(new String(Files.readAllBytes(Paths.get("src/test/resources/__files/KeystoneV3Payload.json"))), com.woorea.openstack.keystone.v3.model.Authentication.class); + com.woorea.openstack.keystone.v3.model.Authentication actual = authenticationMethodFactory.getAuthenticationForV3(identity, "project-x"); + + assertThat(actual, sameBeanAs(expected)); + } } diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloudify/utils/MsoCloudifyUtilsTest2.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloudify/utils/MsoCloudifyUtilsTest.java index c7aecd90be..7c5111bd18 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloudify/utils/MsoCloudifyUtilsTest2.java +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/cloudify/utils/MsoCloudifyUtilsTest.java @@ -23,15 +23,24 @@ package org.onap.so.cloudify.utils; import static com.shazam.shazamcrest.MatcherAssert.assertThat; import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import com.fasterxml.jackson.databind.JsonNode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import org.junit.Assert; import org.junit.Test; import org.mockito.Mockito; import org.onap.so.adapters.vdu.CloudInfo; @@ -50,9 +59,16 @@ import org.onap.so.cloudify.beans.DeploymentInfo; import org.onap.so.cloudify.beans.DeploymentStatus; import org.onap.so.cloudify.v3.client.Cloudify; import org.onap.so.cloudify.v3.model.AzureConfig; +import org.onap.so.db.catalog.beans.CloudifyManager; +import org.onap.so.db.catalog.beans.HeatTemplateParam; +import org.onap.so.openstack.exceptions.MsoAdapterException; import org.onap.so.openstack.exceptions.MsoException; -public class MsoCloudifyUtilsTest2 { +public class MsoCloudifyUtilsTest { + + private static final String CLOUD_SITE_ID = "cloudSiteIdTest"; + private static final String BLUEPRINT_ID = "bluePrintIdTest"; + private static final String FILE_NAME = "fileName"; @Test public void instantiateVduTest() throws MsoException { @@ -225,4 +241,81 @@ public class MsoCloudifyUtilsTest2 { assertThat(actual, sameBeanAs(expected)); } + + @Test + public void uploadBlueprintSuccessful() throws MsoException { + // given + MsoCloudifyUtils testedObjectSpy = spy(MsoCloudifyUtils.class); + testedObjectSpy.cloudConfig = mock(CloudConfig.class); + Map<String, byte[]> blueprints = new HashMap<>(); + + mockCloudConfig(testedObjectSpy); + doReturn(true).when(testedObjectSpy).uploadBlueprint(any(Cloudify.class), eq(BLUEPRINT_ID), + eq(FILE_NAME), eq(blueprints)); + // when + testedObjectSpy.uploadBlueprint(CLOUD_SITE_ID, BLUEPRINT_ID, FILE_NAME, blueprints, true); + // then + verify(testedObjectSpy).uploadBlueprint(any(Cloudify.class), eq(BLUEPRINT_ID), eq(FILE_NAME), + eq(blueprints)); + } + + @Test + public void uploadBlueprint_exceptionThrown_blueprintExists() throws MsoException { + // given + MsoCloudifyUtils testedObjectSpy = spy(MsoCloudifyUtils.class); + testedObjectSpy.cloudConfig = mock(CloudConfig.class); + Map<String, byte[]> blueprints = new HashMap<>(); + + mockCloudConfig(testedObjectSpy); + doReturn(false).when(testedObjectSpy).uploadBlueprint(any(Cloudify.class), eq(BLUEPRINT_ID), + eq(FILE_NAME), eq(blueprints)); + // when + try { + testedObjectSpy.uploadBlueprint(CLOUD_SITE_ID, BLUEPRINT_ID, FILE_NAME, blueprints, true); + // then + fail("MsoAdapterException should be thrown"); + } catch (MsoAdapterException e) { + Assert.assertEquals(e.getMessage(), "Blueprint already exists"); + } + verify(testedObjectSpy).uploadBlueprint(any(Cloudify.class), eq(BLUEPRINT_ID), eq(FILE_NAME), + eq(blueprints)); + } + + @Test + public void convertInputValue_successful() { + MsoCloudifyUtils testedObject = new MsoCloudifyUtils(); + + HeatTemplateParam heatTemplateParam = new HeatTemplateParam(); + heatTemplateParam.setParamType("number"); + Object result = testedObject.convertInputValue("5", heatTemplateParam); + assertTrue(result instanceof Integer); + + heatTemplateParam.setParamType("json"); + Object result2 = testedObject.convertInputValue("{\"key\": \"value\"}", heatTemplateParam); + assertTrue(result2 instanceof JsonNode); + + heatTemplateParam.setParamType("boolean"); + Object result3 = testedObject.convertInputValue("true", heatTemplateParam); + assertTrue(result3 instanceof Boolean); + } + + private void mockCloudConfig(MsoCloudifyUtils testedObjectSpy) { + CloudifyManager cloudifyManager = createCloudifyManager(); + when(testedObjectSpy.cloudConfig.getCloudSite(CLOUD_SITE_ID)).thenReturn(Optional.of(createCloudSite())); + when(testedObjectSpy.cloudConfig.getCloudifyManager(CLOUD_SITE_ID)).thenReturn(cloudifyManager); + } + + private CloudifyManager createCloudifyManager() { + CloudifyManager cloudifyManager = new CloudifyManager(); + cloudifyManager.setCloudifyUrl("cloudUrlTest"); + cloudifyManager.setPassword("546573746F736973546573746F736973"); + return cloudifyManager; + } + + private CloudSite createCloudSite() { + CloudSite cloudSite = new CloudSite(); + cloudSite.setCloudifyId(CLOUD_SITE_ID); + return cloudSite; + } + } diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoCommonUtilsTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoCommonUtilsTest.java index 7ac92574a0..dbce712cb0 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoCommonUtilsTest.java +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoCommonUtilsTest.java @@ -24,7 +24,7 @@ package org.onap.so.openstack.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoHeatUtilsWithUpdateTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoHeatUtilsWithUpdateTest.java index 1a8f4fb098..b735e735c9 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoHeatUtilsWithUpdateTest.java +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoHeatUtilsWithUpdateTest.java @@ -22,8 +22,8 @@ package org.onap.so.openstack.utils; import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs; import static org.junit.Assert.assertThat; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.isA; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; @@ -40,7 +40,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.TestDataSetup; import org.onap.so.cloud.CloudConfig; import org.onap.so.db.catalog.beans.CloudSite; @@ -100,7 +100,6 @@ public class MsoHeatUtilsWithUpdateTest extends TestDataSetup { doReturn(Optional.of(cloudSite)).when(cloudConfig).getCloudSite(isA(String.class)); doReturn(heatClient).when(heatUtils).getHeatClient(isA(CloudSite.class), isA(String.class)); - doReturn(heatStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); doReturn(null).when(heatUtils).executeAndRecordOpenstackRequest(isA(OpenStackRequest.class)); doReturn("0").when(environment).getProperty(isA(String.class), isA(String.class)); doReturn(updateStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); @@ -125,7 +124,7 @@ public class MsoHeatUtilsWithUpdateTest extends TestDataSetup { doReturn(Optional.of(cloudSite)).when(cloudConfig).getCloudSite(isA(String.class)); doReturn(heatClient).when(heatUtils).getHeatClient(isA(CloudSite.class), isA(String.class)); - doReturn(heatStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); + doReturn(null).when(heatUtils).executeAndRecordOpenstackRequest(isA(OpenStackRequest.class)); doReturn("0").when(environment).getProperty(isA(String.class), isA(String.class)); doReturn(updateStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); @@ -151,8 +150,7 @@ public class MsoHeatUtilsWithUpdateTest extends TestDataSetup { expectedStackInfo.setCanonicalName("stackName/id"); doReturn(Optional.of(cloudSite)).when(cloudConfig).getCloudSite(isA(String.class)); - doReturn(heatClient).when(heatUtils).getHeatClient(isA(CloudSite.class), isA(String.class)); - doReturn(heatStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); + doReturn(heatClient).when(heatUtils).getHeatClient(isA(CloudSite.class), isA(String.class)); doReturn(null).when(heatUtils).executeAndRecordOpenstackRequest(isA(OpenStackRequest.class)); doReturn("0").when(environment).getProperty(isA(String.class), isA(String.class)); doReturn(updateStack).when(heatUtils).queryHeatStack(isA(Heat.class), isA(String.class)); diff --git a/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoTenantUtilsFactoryTest.java b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoTenantUtilsFactoryTest.java new file mode 100644 index 0000000000..f2717ab7ce --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/onap/so/openstack/utils/MsoTenantUtilsFactoryTest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright 2019 Nokia + * ================================================================================ + * 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.onap.so.openstack.utils; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowableOfType; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; +import static org.mockito.Mockito.mock; + +import java.util.Optional; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.so.cloud.CloudConfig; +import org.onap.so.db.catalog.beans.CloudSite; +import org.onap.so.db.catalog.beans.ServerType; +import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound; + +@RunWith(MockitoJUnitRunner.class) +public class MsoTenantUtilsFactoryTest { + + @Mock + private CloudConfig cloudConfig; + @Mock + private MsoKeystoneUtils msoKeystoneUtils; + @Mock + private MsoKeystoneV3Utils msoKeystoneV3Utils; + @InjectMocks + private MsoTenantUtilsFactory msoTenantUtilsFactory; + + @Test + public void getTenantUtils_shouldThrowException_whenNoCloudSiteFoundForGivenId() { + // GIVEN + String cloudSiteId = "CloudSiteId"; + given(cloudConfig.getCloudSite(cloudSiteId)).willReturn(Optional.empty()); + + // WHEN + MsoCloudSiteNotFound msoCloudSiteNotFound = catchThrowableOfType( + () -> msoTenantUtilsFactory.getTenantUtils(cloudSiteId), MsoCloudSiteNotFound.class); + + // THEN + assertThat(msoCloudSiteNotFound.getMessage()).contains(cloudSiteId); + } + + @Test + public void getTenantUtils_shouldReturnNull_forInvalidServerType() throws MsoCloudSiteNotFound { + // GIVEN + String cloudSiteId = "CloudSiteId"; + CloudSite cloudSite = mock(CloudSite.class, RETURNS_DEEP_STUBS); + given(cloudConfig.getCloudSite(cloudSiteId)).willReturn(Optional.of(cloudSite)); + + // WHEN + MsoTenantUtils tenantUtils = msoTenantUtilsFactory.getTenantUtils(cloudSiteId); + + // THEN + assertThat(tenantUtils).isNull(); + } + + @Test + public void getTenantUtils_shouldReturnKeystoneUtils_forKeystoneServerType() throws MsoCloudSiteNotFound { + shouldReturnAppropriateUtilsInstanceForGivenServerType(ServerType.KEYSTONE, msoKeystoneUtils); + } + + @Test + public void getTenantUtils_shouldReturnKeystoneV3Utils_forKeystoneV3ServerType() throws MsoCloudSiteNotFound { + shouldReturnAppropriateUtilsInstanceForGivenServerType(ServerType.KEYSTONE_V3, msoKeystoneV3Utils); + } + + private <T extends MsoTenantUtils> void shouldReturnAppropriateUtilsInstanceForGivenServerType( + ServerType serverType, T expectedInstance) throws MsoCloudSiteNotFound { + // GIVEN + String cloudSiteId = "CloudSiteId"; + CloudSite cloudSite = mock(CloudSite.class, RETURNS_DEEP_STUBS); + given(cloudSite.getIdentityService().getIdentityServerType()).willReturn(serverType); + given(cloudConfig.getCloudSite(cloudSiteId)).willReturn(Optional.of(cloudSite)); + + // WHEN + MsoTenantUtils tenantUtils = msoTenantUtilsFactory.getTenantUtils(cloudSiteId); + + // THEN + assertThat(tenantUtils).isEqualTo(expectedInstance); + } +} diff --git a/adapters/mso-adapter-utils/src/test/resources/__files/KeystoneV3Payload.json b/adapters/mso-adapter-utils/src/test/resources/__files/KeystoneV3Payload.json new file mode 100644 index 0000000000..dc6588ed36 --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/resources/__files/KeystoneV3Payload.json @@ -0,0 +1,24 @@ +{ + "identity": { + "methods": [ + "password" + ], + "password": { + "user": { + "domain": { + "name": "user-domain" + }, + "name": "my-username", + "password": "my-password" + } + } + }, + "scope": { + "project": { + "domain": { + "name": "test-domain" + }, + "id": "project-x" + } + } +} diff --git a/adapters/mso-adapter-utils/src/test/resources/application-test.yaml b/adapters/mso-adapter-utils/src/test/resources/application-test.yaml index f9467d3c12..368df847be 100644 --- a/adapters/mso-adapter-utils/src/test/resources/application-test.yaml +++ b/adapters/mso-adapter-utils/src/test/resources/application-test.yaml @@ -22,11 +22,14 @@ cloud_config: clli: "MTN6" aic_version: "3.0" identity_service_id: "ORDM3" -adapters: - po: - retryCodes: "504" - retryDelay: "5" - retryCount: "3" +org: + onap: + so: + adapters: + po: + retryCodes: "504" + retryDelay: "5" + retryCount: "3" tenant: tenant_description: "ECOMP Tenant" region_type: "single" @@ -61,7 +64,7 @@ mso: queue-capacity: 500 spring: datasource: - url: jdbc:mariadb://localhost:3307/catalogdb + jdbc-url: jdbc:mariadb://localhost:3307/catalogdb username: root password: password driver-class-name: org.mariadb.jdbc.Driver |