Merge "Change rule retrieval from CBS to ConfigMap"
[holmes/engine-management.git] / engine-d / src / test / java / org / onap / holmes / engine / dcae / ConfigFileScanningTaskTest.java
diff --git a/engine-d/src/test/java/org/onap/holmes/engine/dcae/ConfigFileScanningTaskTest.java b/engine-d/src/test/java/org/onap/holmes/engine/dcae/ConfigFileScanningTaskTest.java
new file mode 100644 (file)
index 0000000..b663133
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * Copyright 2021 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.
+ */
+
+package org.onap.holmes.engine.dcae;
+
+import org.easymock.EasyMock;
+import org.glassfish.hk2.api.ServiceLocator;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.holmes.common.dcae.DcaeConfigurationsCache;
+import org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder;
+import org.onap.holmes.dsa.dmaappolling.DMaaPResponseUtil;
+import org.onap.holmes.dsa.dmaappolling.Subscriber;
+import org.onap.holmes.engine.dmaap.SubscriberAction;
+import org.powermock.api.easymock.PowerMock;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+@RunWith(PowerMockRunner.class)
+public class ConfigFileScanningTaskTest {
+
+    @Test
+    public void run() {
+        ServiceLocator mockedSl = PowerMock.createMock(ServiceLocator.class);
+        SubscriberAction mockedSa = PowerMock.createMock(SubscriberAction.class);
+        ServiceLocatorHolder.setLocator(mockedSl);
+        EasyMock.expect(mockedSl.getService(SubscriberAction.class)).andReturn(mockedSa);
+        // This is invoked while executing new Subscriber().
+        EasyMock.expect(mockedSl.getService(DMaaPResponseUtil.class)).andReturn(new DMaaPResponseUtil());
+        mockedSa.addSubscriber(EasyMock.anyObject(Subscriber.class));
+        EasyMock.expectLastCall();
+
+        ConfigFileScanningTask cfst = new ConfigFileScanningTask(null);
+        String configFilePath = ConfigFileScanningTaskTest.class.getResource("/cfy.json").getFile();
+        Whitebox.setInternalState(cfst, "configFile", configFilePath);
+
+        PowerMock.replayAll();
+        cfst.run();
+        PowerMock.verifyAll();
+
+        assertThat(DcaeConfigurationsCache.getPubSecInfo("dcae_cl_out").getDmaapInfo().getTopicUrl(),
+                equalTo("http://message-router.onap:3904/events/unauthenticated.DCAE_CL_OUTPUT"));
+    }
+
+    @Test
+    public void run_config_not_changed() {
+        ServiceLocator mockedSl = PowerMock.createMock(ServiceLocator.class);
+        SubscriberAction mockedSa = PowerMock.createMock(SubscriberAction.class);
+        ServiceLocatorHolder.setLocator(mockedSl);
+        // mocked objects will be only used once
+        EasyMock.expect(mockedSl.getService(SubscriberAction.class)).andReturn(mockedSa);
+        // This is invoked while executing new Subscriber().
+        EasyMock.expect(mockedSl.getService(DMaaPResponseUtil.class)).andReturn(new DMaaPResponseUtil());
+        mockedSa.addSubscriber(EasyMock.anyObject(Subscriber.class));
+        EasyMock.expectLastCall();
+
+        ConfigFileScanningTask cfst = new ConfigFileScanningTask(null);
+        String configFilePath = ConfigFileScanningTaskTest.class.getResource("/cfy.json").getFile();
+        Whitebox.setInternalState(cfst, "configFile", configFilePath);
+
+        PowerMock.replayAll();
+        cfst.run();
+        cfst.run();
+        PowerMock.verifyAll();
+    }
+}
\ No newline at end of file