diff options
Diffstat (limited to 'asdc-controller/src/test/java/org/openecomp/mso/asdc/client/ASDCConfigurationTest.java')
-rw-r--r-- | asdc-controller/src/test/java/org/openecomp/mso/asdc/client/ASDCConfigurationTest.java | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/asdc-controller/src/test/java/org/openecomp/mso/asdc/client/ASDCConfigurationTest.java b/asdc-controller/src/test/java/org/openecomp/mso/asdc/client/ASDCConfigurationTest.java new file mode 100644 index 0000000000..2300f1e890 --- /dev/null +++ b/asdc-controller/src/test/java/org/openecomp/mso/asdc/client/ASDCConfigurationTest.java @@ -0,0 +1,360 @@ +/*- + * ============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.asdc.client; + + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.List; + +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import org.openecomp.mso.asdc.client.ASDCConfiguration; +import org.openecomp.mso.asdc.client.exceptions.ASDCParametersException; +import org.openecomp.mso.properties.MsoPropertiesException; +import org.openecomp.mso.properties.MsoPropertiesFactory; + +/** + * THis class tests the ASDC Controller by using the ASDC Mock CLient + * + * + */ +public class ASDCConfigurationTest { + + public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory(); + public final String ASDC_PROP = ASDCConfigurationTest.class.getClassLoader().getResource("mso.json").toString().substring(5); + public final String ASDC_PROP2 = ASDCConfigurationTest.class.getClassLoader().getResource("mso2.json").toString().substring(5); + public final String ASDC_PROP3 = ASDCConfigurationTest.class.getClassLoader().getResource("mso3.json").toString().substring(5); + public final String ASDC_PROP_BAD = ASDCConfigurationTest.class.getClassLoader().getResource("mso-bad.json").toString().substring(5); + public final String ASDC_PROP_WITH_NULL = ASDCConfigurationTest.class.getClassLoader().getResource("mso-with-NULL.json").toString().substring(5); + public final String ASDC_PROP_DOUBLE_CONFIG = ASDCConfigurationTest.class.getClassLoader().getResource("mso-two-configs.json").toString().substring(5); + public final String ASDC_PROP4_WITH_TLS = ASDCConfigurationTest.class.getClassLoader().getResource("mso4-with-TLS.json").toString().substring(5); + + @BeforeClass + public static final void prepareBeforeAllTests() { + msoPropertiesFactory.removeAllMsoProperties(); + } + + @Before + public final void prepareBeforeEachTest () throws MsoPropertiesException { + msoPropertiesFactory.initializeMsoProperties(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP); + } + + @After + public final void cleanAfterEachTest () { + msoPropertiesFactory.removeAllMsoProperties(); + } + + @Test + public final void testTheInit() throws ASDCParametersException, IOException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + assertNotNull(asdcConfig.getUser()); + assertTrue("User".equals(asdcConfig.getUser())); + + assertNotNull(asdcConfig.getPassword()); + assertTrue("ThePassword".equals(asdcConfig.getPassword())); + + assertNotNull(asdcConfig.getConsumerGroup()); + assertTrue("consumerGroup".equals(asdcConfig.getConsumerGroup())); + + assertNotNull(asdcConfig.getConsumerID()); + assertTrue("consumerId".equals(asdcConfig.getConsumerID())); + + assertNotNull(asdcConfig.getEnvironmentName()); + assertTrue("environmentName".equals(asdcConfig.getEnvironmentName())); + + assertNotNull(asdcConfig.getAsdcAddress()); + assertTrue("hostname".equals(asdcConfig.getAsdcAddress())); + + assertNotNull(asdcConfig.getPollingInterval()); + assertTrue(asdcConfig.getPollingInterval() == 10); + + assertNotNull(asdcConfig.getPollingTimeout()); + assertTrue(asdcConfig.getPollingTimeout() == 30); + + assertNotNull(asdcConfig.getRelevantArtifactTypes()); + assertTrue(asdcConfig.getRelevantArtifactTypes().size() == ASDCConfiguration.SUPPORTED_ARTIFACT_TYPES_LIST.size()); + + assertFalse(asdcConfig.activateServerTLSAuth()); + + } + + @Test + public final void testAllParametersMethod() throws ASDCParametersException, IOException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + + // No exception should be raised + asdcConfig.testAllParameters(); + } + + @Test + public final void testTheRefreshConfigFalseCase() throws ASDCParametersException, IOException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + + // No update should be done as we use the mso.properties located in the resource folder for testing + assertFalse(asdcConfig.hasASDCConfigChanged()); + assertFalse(asdcConfig.refreshASDCConfig()); + + assertNotNull(asdcConfig.getUser()); + assertTrue("User".equals(asdcConfig.getUser())); + + assertNotNull(asdcConfig.getPassword()); + assertTrue("ThePassword".equals(asdcConfig.getPassword())); + + assertNotNull(asdcConfig.getConsumerGroup()); + assertTrue("consumerGroup".equals(asdcConfig.getConsumerGroup())); + + assertNotNull(asdcConfig.getConsumerID()); + assertTrue("consumerId".equals(asdcConfig.getConsumerID())); + + assertNotNull(asdcConfig.getEnvironmentName()); + assertTrue("environmentName".equals(asdcConfig.getEnvironmentName())); + + assertNotNull(asdcConfig.getAsdcAddress()); + assertTrue("hostname".equals(asdcConfig.getAsdcAddress())); + + assertNotNull(asdcConfig.getPollingInterval()); + assertTrue(asdcConfig.getPollingInterval() == 10); + + assertNotNull(asdcConfig.getPollingTimeout()); + assertTrue(asdcConfig.getPollingTimeout() == 30); + + assertNotNull(asdcConfig.getRelevantArtifactTypes()); + assertTrue(asdcConfig.getRelevantArtifactTypes().size() == ASDCConfiguration.SUPPORTED_ARTIFACT_TYPES_LIST.size()); + + msoPropertiesFactory.removeAllMsoProperties(); + + try { + asdcConfig.refreshASDCConfig(); + fail("Should have thrown an ASDCParametersException because config does not exist anymore!"); + } catch (ASDCParametersException e) { + assertTrue(e.getMessage().contains(("mso.asdc.json not initialized properly, ASDC config cannot be reloaded"))); + } + + try { + asdcConfig.hasASDCConfigChanged(); + fail("Should have thrown an ASDCParametersException because config does not exist anymore!"); + } catch (ASDCParametersException e) { + assertTrue(e.getMessage().contains(("mso.asdc.json not initialized properly, ASDC config cannot be read"))); + } + + } + + + @Test + @Ignore // 1802 merge + public final void testToChangeTheFileAndRefresh () throws ASDCParametersException, IOException, MsoPropertiesException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP2); + msoPropertiesFactory.reloadMsoProperties(); + + // SHould be the same file untouched just a different file name, there should be no difference between them + // In a normal case a different Filename should force the system to reload the config but not here as we have changed the filename by reflection + assertFalse(asdcConfig.hasASDCConfigChanged()); + assertFalse(asdcConfig.refreshASDCConfig()); + + assertNotNull(asdcConfig.getUser()); + assertTrue("User".equals(asdcConfig.getUser())); + + assertNotNull(asdcConfig.getPassword()); + assertTrue("ThePassword".equals(asdcConfig.getPassword())); + + assertNotNull(asdcConfig.getConsumerGroup()); + assertTrue("consumerGroup".equals(asdcConfig.getConsumerGroup())); + + assertNotNull(asdcConfig.getConsumerID()); + assertTrue("consumerId".equals(asdcConfig.getConsumerID())); + + assertNotNull(asdcConfig.getEnvironmentName()); + assertTrue("environmentName".equals(asdcConfig.getEnvironmentName())); + + assertNotNull(asdcConfig.getAsdcAddress()); + assertTrue("hostname".equals(asdcConfig.getAsdcAddress())); + + assertNotNull(asdcConfig.getPollingInterval()); + assertTrue(asdcConfig.getPollingInterval() == 10); + + assertNotNull(asdcConfig.getPollingTimeout()); + assertTrue(asdcConfig.getPollingTimeout() == 30); + + assertNotNull(asdcConfig.getRelevantArtifactTypes()); + assertTrue(asdcConfig.getRelevantArtifactTypes().size() == ASDCConfiguration.SUPPORTED_ARTIFACT_TYPES_LIST.size()); + + // Set another file that has some attributes changed + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP3); + msoPropertiesFactory.reloadMsoProperties(); + + // SHould be the same file untouched just a different file name, so new config + assertTrue(asdcConfig.hasASDCConfigChanged()); + assertTrue(asdcConfig.refreshASDCConfig()); + + assertNotNull(asdcConfig.getUser()); + assertTrue("User".equals(asdcConfig.getUser())); + + assertNotNull(asdcConfig.getPassword()); + assertTrue("ThePassword".equals(asdcConfig.getPassword())); + + assertNotNull(asdcConfig.getConsumerGroup()); + assertTrue("consumerGroup".equals(asdcConfig.getConsumerGroup())); + + assertNotNull(asdcConfig.getConsumerID()); + assertTrue("consumerId".equals(asdcConfig.getConsumerID())); + + assertNotNull(asdcConfig.getEnvironmentName()); + assertTrue("environmentName".equals(asdcConfig.getEnvironmentName())); + + // only this field has been changed + assertNotNull(asdcConfig.getAsdcAddress()); + assertTrue("hostname1".equals(asdcConfig.getAsdcAddress())); + + assertNotNull(asdcConfig.getPollingInterval()); + assertTrue(asdcConfig.getPollingInterval() == 10); + + assertNotNull(asdcConfig.getPollingTimeout()); + assertTrue(asdcConfig.getPollingTimeout() == 30); + + assertNotNull(asdcConfig.getRelevantArtifactTypes()); + assertTrue(asdcConfig.getRelevantArtifactTypes().size() == ASDCConfiguration.SUPPORTED_ARTIFACT_TYPES_LIST.size()); + + + // reload the good property file for other test cases + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP); + msoPropertiesFactory.reloadMsoProperties(); + + } + + @Test + @Ignore // 1802 merge + public final void testAllParametersCheck () throws ASDCParametersException, IOException, MsoPropertiesException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP_BAD); + msoPropertiesFactory.reloadMsoProperties(); + // SHould be a bad file, it should raise an exception + try { + asdcConfig.refreshASDCConfig(); + fail("Should have thrown an ASDCControllerException because one param is missing!"); + } catch (ASDCParametersException e) { + assertTrue(e.getMessage().contains(("consumerGroup parameter cannot be found in config mso.properties"))); + } + + + // reload the good property file for other test cases + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP); + msoPropertiesFactory.reloadMsoProperties(); + + assertTrue(asdcConfig.refreshASDCConfig()); + + } + + @Test + public final void testConsumerGroupWithNULL () throws MsoPropertiesException, ASDCParametersException, IOException { + ASDCConfiguration asdcConfig = new ASDCConfiguration("asdc-controller1"); + + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP_WITH_NULL); + msoPropertiesFactory.reloadMsoProperties(); + + asdcConfig.refreshASDCConfig(); + assertTrue(asdcConfig.getConsumerGroup()==null); + + // reload the good property file for other test cases + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP); + msoPropertiesFactory.reloadMsoProperties(); + + assertTrue(asdcConfig.refreshASDCConfig()); + + + } + + @Test + @Ignore // 1802 merge + public final void testGetAllDefinedControllers() throws MsoPropertiesException, ASDCParametersException, IOException { + List<String> listControllers = ASDCConfiguration.getAllDefinedControllers(); + + assertTrue(listControllers.size()==1); + assertTrue("asdc-controller1".equals(listControllers.get(0))); + + ASDCConfiguration asdcConfiguration = new ASDCConfiguration("asdc-controller1"); + assertTrue(asdcConfiguration.getAsdcControllerName().equals("asdc-controller1")); + + + // Try to reload a wrong Json file + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP_BAD); + msoPropertiesFactory.reloadMsoProperties(); + + listControllers = ASDCConfiguration.getAllDefinedControllers(); + assertTrue(listControllers.size()==0); + + } + + @Test + public final void testABadInit() throws MsoPropertiesException { + msoPropertiesFactory.removeAllMsoProperties(); + + try { + ASDCConfiguration asdcConfiguration = new ASDCConfiguration("asdc-controller1"); + fail("Should have thrown an ASDCParametersException because prop factory is empty!"); + } catch (ASDCParametersException e) { + assertTrue(e.getMessage().contains(("mso.asdc.json not initialized properly, ASDC config cannot be reloaded"))); + } catch (IOException e) { + fail("Should have thrown an ASDCParametersException, not IOException because file is corrupted!"); + } + } + + @Test + public final void testFileDoesNotExist() throws MsoPropertiesException, ASDCParametersException, IOException { + + ASDCConfiguration asdcConfiguration = new ASDCConfiguration("asdc-controller1"); + + msoPropertiesFactory.removeAllMsoProperties(); + + try { + asdcConfiguration.refreshASDCConfig(); + fail("Should have thrown an ASDCParametersException because factory is empty!"); + } catch (ASDCParametersException e) { + assertTrue(e.getMessage().contains(("mso.asdc.json not initialized properly, ASDC config cannot be reloaded"))); + } + } + + @Test + public final void testWithTLS () throws ASDCParametersException, IOException, MsoPropertiesException { + ASDCConfiguration asdcConfiguration = new ASDCConfiguration("asdc-controller1"); + + msoPropertiesFactory.changeMsoPropertiesFilePath(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP4_WITH_TLS); + msoPropertiesFactory.reloadMsoProperties(); + + asdcConfiguration.refreshASDCConfig(); + + assertTrue(asdcConfiguration.activateServerTLSAuth()); + assertTrue("/test".equals(asdcConfiguration.getKeyStorePath())); + assertTrue("ThePassword".equals(asdcConfiguration.getKeyStorePassword())); + } + +} |