diff options
author | Lukasz Muszkieta <lukasz.muszkieta@nokia.com> | 2018-03-07 10:18:39 +0100 |
---|---|---|
committer | Lukasz Muszkieta <lukasz.muszkieta@nokia.com> | 2018-03-12 13:42:34 +0100 |
commit | f546e4acc2cc81f734f3b0160069b3e48b9c5be3 (patch) | |
tree | aefc0e4c34e847d5e9d523272dce251f4b3015e8 /adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java | |
parent | 4370cf4eefb3de99b5eff870f90637931e9759e1 (diff) |
junit adding and refactor for CloudConfig
Change-Id: I3b98e6f8633347970be70e7b93680ec8ed4daacc
Issue-ID: SO-430
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
Diffstat (limited to 'adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java')
-rw-r--r-- | adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java new file mode 100644 index 0000000000..fe768b5774 --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java @@ -0,0 +1,164 @@ +/*- + * ============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.openecomp.mso.cloud; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; +import javax.ws.rs.core.Response; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound; + +public class CloudConfigFactoryTest { + + private static final String CLOUD_CONFIG_FIELD_NAME = "cloudConfigCache"; + private static final int REFRESH_TIMER_VALUE = 1; + + private CloudConfigFactory testedObject; + private CloudConfig cloudConfigMock; + + @Before + public void init() throws NoSuchFieldException, IllegalAccessException { + cloudConfigMock = mock(CloudConfig.class); + testedObject = new CloudConfigFactory(); + setCloudConfig(); + } + + @Test + public void initializeCloudConfigSuccessful() throws MsoCloudIdentityNotFound, IOException { + ClassLoader classLoader = CloudConfigFactoryTest.class.getClassLoader(); + String cloudConfigJsonFilePath = classLoader.getResource("cloud_config.json").getPath(); + testedObject.initializeCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE); + verify(cloudConfigMock).loadCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE); + } + + @Test + public void getValidCloudConfig() { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + + testedObject.getCloudConfig(); + + verify(cloudConfigMock).clone(); + } + + @Test + public void getNotValidCloudConfig() { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(false); + + CloudConfig result = testedObject.getCloudConfig(); + + assertThat(result).isNotNull(); + assertThat(result.getCloudSites()).isEmpty(); + assertThat(result.getIdentityServices()).isEmpty(); + } + + @Test + public void reload_CloudConfigValid() throws IOException, MsoCloudIdentityNotFound { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + + testedObject.reloadCloudConfig(); + + verify(cloudConfigMock).clone(); + verify(cloudConfigMock).reloadPropertiesFile(); + } + + @Test + public void reload_CloudConfigNotValid() + throws IOException, MsoCloudIdentityNotFound { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(false); + + testedObject.reloadCloudConfig(); + + verify(cloudConfigMock).reloadPropertiesFile(); + } + + @Test + public void showCloudConfig() throws NoSuchFieldException, IllegalAccessException { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + when(cloudConfigMock.clone()).thenReturn(createCloudConfig("IdTest576", "identityTest456")); + Response response = testedObject.showCloudConfig(); + + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).containsPattern("CloudSite:.*IdTest576") + .containsPattern("Cloud Identity Service:.*identityTest456"); + + } + + @Test + public void resetClientCaches_Successful() { + Response response = testedObject.resetClientCaches(); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Client caches reset. All entries removed."); + } + + @Test + public void cleanUpClientCache_Successful() { + Response response = testedObject.cleanupClientCaches(); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Client caches cleaned up. All expired entries removed."); + } + + @Test + public void encryptPassword_Successful() { + Response response = testedObject.encryptPassword("passTest123"); + String expectedEncryptedPassword = CloudIdentity.encryptPassword("passTest123"); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Encrypted Password = "+expectedEncryptedPassword); + } + + private CloudConfig createCloudConfig(String cloudSiteId, String identityServiceId) + throws NoSuchFieldException, IllegalAccessException { + CloudConfig cloudConfig = new CloudConfig(); + Map<String, CloudSite> cloudSiteMap = new HashMap<>(); + CloudSite cs = new CloudSite(); + cs.setId(cloudSiteId); + cloudSiteMap.put("keyTest", cs); + Field cloudSitesField = cloudConfig.getClass().getDeclaredField("cloudSites"); + cloudSitesField.setAccessible(true); + cloudSitesField.set(cloudConfig, cloudSiteMap); + + Map<String, CloudIdentity> identityServicesMap = new HashMap<>(); + CloudIdentity cloudIdentity = new CloudIdentity(); + cloudIdentity.setId(identityServiceId); + identityServicesMap.put("identityKey", cloudIdentity); + + Field identityServicesField = cloudConfig.getClass().getDeclaredField("identityServices"); + identityServicesField.setAccessible(true); + identityServicesField.set(cloudConfig, identityServicesMap); + + return cloudConfig; + } + + private void setCloudConfig() + throws NoSuchFieldException, IllegalAccessException { + Field field = testedObject.getClass().getDeclaredField(CLOUD_CONFIG_FIELD_NAME); + field.setAccessible(true); + field.set(testedObject, cloudConfigMock); + } + +} |