diff options
Diffstat (limited to 'feature-legacy-config/src/test')
6 files changed, 320 insertions, 0 deletions
diff --git a/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigFeatureTest.java b/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigFeatureTest.java new file mode 100644 index 00000000..d73817b8 --- /dev/null +++ b/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigFeatureTest.java @@ -0,0 +1,70 @@ +/* + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2021 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.policy.drools.legacy.config; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.policy.common.endpoints.event.comm.bus.NoopTopicFactories; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; +import org.onap.policy.drools.system.PolicyEngineConstants; + +public class LegacyConfigFeatureTest { + + private LegacyConfigFeature configF; + + /** + * Set up. + */ + @Before + public void setUp() { + SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes"); + configF = new LegacyConfigFeature(); + } + + /** + * Tear down. + */ + @After + public void tearDown() { + NoopTopicFactories.getSourceFactory().destroy(); + NoopTopicFactories.getSinkFactory().destroy(); + SystemPersistenceConstants.getManager().setConfigurationDir(null); + } + + @Test + public void getSequenceNumber() { + assertEquals(LegacyConfigFeature.SEQNO, new LegacyConfigFeature().getSequenceNumber()); + } + + @Test + public void afterOpenBeforeShutdown() { + assertFalse(LegacyConfigFeature.getLegacyConfig().isAlive()); + configF.afterOpen(PolicyEngineConstants.getManager()); + assertTrue(LegacyConfigFeature.getLegacyConfig().isAlive()); + configF.beforeShutdown(PolicyEngineConstants.getManager()); + assertFalse(LegacyConfigFeature.getLegacyConfig().isAlive()); + } +}
\ No newline at end of file diff --git a/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigTest.java b/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigTest.java new file mode 100644 index 00000000..d970585b --- /dev/null +++ b/feature-legacy-config/src/test/java/org/onap/policy/drools/legacy/config/LegacyConfigTest.java @@ -0,0 +1,87 @@ +/* + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2021 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.policy.drools.legacy.config; + +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.policy.common.endpoints.event.comm.Topic; +import org.onap.policy.common.endpoints.event.comm.bus.NoopTopicFactories; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; + +public class LegacyConfigTest { + + /** + * Set up. + */ + @Before + public void setUp() { + SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes"); + } + + /** + * Tear down. + */ + @After + public void tearDown() { + NoopTopicFactories.getSourceFactory().destroy(); + NoopTopicFactories.getSinkFactory().destroy(); + SystemPersistenceConstants.getManager().setConfigurationDir(null); + } + + @Test + public void testStartStop() { + LegacyConfig config = new LegacyConfig(); + assertFalse(config.isAlive()); + + assertTrue(config.start()); + assertTrue(config.isAlive()); + + config.onTopicEvent(Topic.CommInfrastructure.NOOP, "PDPD-CONFIGURATION", "{}"); + assertTrue(config.isAlive()); + + assertTrue(config.stop()); + assertFalse(config.isAlive()); + + config.shutdown(); + assertFalse(config.isAlive()); + } + + @Test + public void testConstructors() { + LegacyConfig config = new LegacyConfig(); + assertNotNull(config.getProperties()); + assertEquals("PDPD-CONFIGURATION", config.getSource().getTopic()); + + SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes/bad-properties-1"); + assertThatIllegalStateException().isThrownBy(LegacyConfig::new); + + /* two sources are ok - no exception */ + SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes/properties-2"); + new LegacyConfig(); + } +}
\ No newline at end of file diff --git a/feature-legacy-config/src/test/java/org/onap/policy/drools/server/restful/RestLegacyConfigTest.java b/feature-legacy-config/src/test/java/org/onap/policy/drools/server/restful/RestLegacyConfigTest.java new file mode 100644 index 00000000..6dd2edbc --- /dev/null +++ b/feature-legacy-config/src/test/java/org/onap/policy/drools/server/restful/RestLegacyConfigTest.java @@ -0,0 +1,106 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2021 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.policy.drools.server.restful; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.Properties; +import javax.ws.rs.core.Response; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams; +import org.onap.policy.common.endpoints.http.client.HttpClient; +import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance; +import org.onap.policy.common.endpoints.http.server.HttpServletServer; +import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; +import org.onap.policy.common.endpoints.http.server.YamlJacksonHandler; +import org.onap.policy.common.gson.JacksonHandler; +import org.onap.policy.common.utils.network.NetworkUtil; +import org.onap.policy.drools.legacy.config.LegacyConfigFeature; +import org.onap.policy.drools.persistence.SystemPersistenceConstants; +import org.onap.policy.drools.system.PolicyControllerConstants; + +public class RestLegacyConfigTest { + + private static HttpClient client; + + /** + * Set up. + */ + @BeforeClass + public static void setUp() throws Exception { + SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes"); + + HttpServletServerFactoryInstance.getServerFactory().destroy(); + HttpClientFactoryInstance.getClientFactory().destroy(); + PolicyControllerConstants.getFactory().destroy(); + + int port = NetworkUtil.allocPort(); + + HttpClientFactoryInstance.getClientFactory().build( + BusTopicParams.builder() + .clientName("legacy") + .hostname("localhost") + .port(port) + .basePath("policy/pdp/engine/legacy/config") + .managed(true) + .build()); + + HttpServletServer server = + HttpServletServerFactoryInstance.getServerFactory().build("legacy", "localhost", port, "/", + true, true); + server.setSerializationProvider( + String.join(",", JacksonHandler.class.getName(), YamlJacksonHandler.class.getName())); + server.addServletClass("/*", RestLegacyConfigManager.class.getName()); + server.waitedStart(5000L); + + assertTrue(NetworkUtil.isTcpPortOpen("localhost", port, 40, 250L)); + client = HttpClientFactoryInstance.getClientFactory().get("legacy"); + } + + /** + * Tear down. + */ + @AfterClass + public static void tearDown() { + LegacyConfigFeature.getLegacyConfig().shutdown(); + HttpClientFactoryInstance.getClientFactory().destroy(); + HttpServletServerFactoryInstance.getServerFactory().destroy(); + SystemPersistenceConstants.getManager().setConfigurationDir(null); + } + + @Test + public void properties() { + Response response = client.get("properties"); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + assertEquals(LegacyConfigFeature.getLegacyConfig().getProperties(), + HttpClient.getBody(response, Properties.class)); + } + + @Test + public void topic() { + Response response = client.get("source"); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); + } +} + + + diff --git a/feature-legacy-config/src/test/resources/bad-properties-1/feature-legacy-config.properties b/feature-legacy-config/src/test/resources/bad-properties-1/feature-legacy-config.properties new file mode 100644 index 00000000..4c86f1f4 --- /dev/null +++ b/feature-legacy-config/src/test/resources/bad-properties-1/feature-legacy-config.properties @@ -0,0 +1,17 @@ +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2021 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========================================================= diff --git a/feature-legacy-config/src/test/resources/feature-legacy-config.properties b/feature-legacy-config/src/test/resources/feature-legacy-config.properties new file mode 100644 index 00000000..9eef6115 --- /dev/null +++ b/feature-legacy-config/src/test/resources/feature-legacy-config.properties @@ -0,0 +1,21 @@ +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2021 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========================================================= + +noop.source.topics=PDPD-CONFIGURATION +noop.source.topics.PDPD-CONFIGURATION.servers=noop +noop.source.topics.managed=false diff --git a/feature-legacy-config/src/test/resources/properties-2/feature-legacy-config.properties b/feature-legacy-config/src/test/resources/properties-2/feature-legacy-config.properties new file mode 100644 index 00000000..9faba61f --- /dev/null +++ b/feature-legacy-config/src/test/resources/properties-2/feature-legacy-config.properties @@ -0,0 +1,19 @@ +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2021 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========================================================= + +noop.source.topics=PDPD-CONFIGURATION-1,PDPD-CONFIGURATION-2 |