diff options
author | liamfallon <liam.fallon@ericsson.com> | 2018-10-01 15:05:58 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@ericsson.com> | 2018-10-01 15:06:07 +0100 |
commit | 0bfa9b4dfe33aa70fa921aa5e5c684790fd030d6 (patch) | |
tree | f9992a354e3d37216c61c6f82252b43276e629a5 | |
parent | acb59c7b0ccbb86f4c38a94b72e7bab73b2acf8f (diff) |
Refactor monitoring REST tests to remove PowerMock
Removed PowerMock from tests becasue coverage of PowerMock is not counted
by JaCoCO. It was easier to remove PowerMock than to try and hack the build
get PowerMock coverage counted.
Issue-ID: POLICY-1034
Change-Id: Ifc3e1ff93b2bfcb5619a5af6dec320d2de992f87
Signed-off-by: liamfallon <liam.fallon@ericsson.com>
4 files changed, 184 insertions, 43 deletions
diff --git a/client/client-monitoring/pom.xml b/client/client-monitoring/pom.xml index fb150cb08..55e1c0649 100644 --- a/client/client-monitoring/pom.xml +++ b/client/client-monitoring/pom.xml @@ -64,19 +64,8 @@ <artifactId>commons-cli</artifactId> </dependency> <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4-rule-agent</artifactId> - <version>${version.powermock}</version> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> </dependencies> diff --git a/client/client-monitoring/src/main/java/org/onap/policy/apex/client/monitoring/rest/ApexMonitoringRestResource.java b/client/client-monitoring/src/main/java/org/onap/policy/apex/client/monitoring/rest/ApexMonitoringRestResource.java index 07e2efd13..c5c4b1291 100644 --- a/client/client-monitoring/src/main/java/org/onap/policy/apex/client/monitoring/rest/ApexMonitoringRestResource.java +++ b/client/client-monitoring/src/main/java/org/onap/policy/apex/client/monitoring/rest/ApexMonitoringRestResource.java @@ -89,7 +89,7 @@ public class ApexMonitoringRestResource { public Response createSession(@QueryParam("hostName") final String hostName, @QueryParam("port") final int port) { final Gson gson = new Gson(); final String host = hostName + ":" + port; - final EngineServiceFacade engineServiceFacade = new EngineServiceFacade(hostName, port); + final EngineServiceFacade engineServiceFacade = getEngineServiceFacade(hostName, port); try { engineServiceFacade.init(); @@ -175,7 +175,7 @@ public class ApexMonitoringRestResource { @Path("startstop/") public Response startStop(@QueryParam("hostName") final String hostName, @QueryParam("port") final int port, @QueryParam("engineId") final String engineId, @QueryParam("startstop") final String startStop) { - final EngineServiceFacade engineServiceFacade = new EngineServiceFacade(hostName, port); + final EngineServiceFacade engineServiceFacade = getEngineServiceFacade(hostName, port); try { engineServiceFacade.init(); @@ -227,7 +227,7 @@ public class ApexMonitoringRestResource { public Response periodiceventStartStop(@QueryParam("hostName") final String hostName, @QueryParam("port") final int port, @QueryParam("engineId") final String engineId, @QueryParam("startstop") final String startStop, @QueryParam("period") final long period) { - final EngineServiceFacade engineServiceFacade = new EngineServiceFacade(hostName, port); + final EngineServiceFacade engineServiceFacade = getEngineServiceFacade(hostName, port); final String host = hostName + ":" + port; try { engineServiceFacade.init(); @@ -312,6 +312,18 @@ public class ApexMonitoringRestResource { return valueList; } + + /** + * Get an engine service facade for sending REST requests. This method is package because it is used by unit test. + * + * @param hostName the host name of the Apex engine + * @param port the port of the Apex engine + * @return the engine service facade + */ + protected EngineServiceFacade getEngineServiceFacade(final String hostName, final int port) { + return new EngineServiceFacade(hostName, port); + } + /** * A list of values that uses a FIFO sliding window of a fixed size. */ diff --git a/client/client-monitoring/src/test/java/org/onap/policy/apex/client/monitoring/rest/RestResourceTest.java b/client/client-monitoring/src/test/java/org/onap/policy/apex/client/monitoring/rest/RestResourceTest.java index d63f6bd8c..7345dece0 100644 --- a/client/client-monitoring/src/test/java/org/onap/policy/apex/client/monitoring/rest/RestResourceTest.java +++ b/client/client-monitoring/src/test/java/org/onap/policy/apex/client/monitoring/rest/RestResourceTest.java @@ -21,67 +21,127 @@ package org.onap.policy.apex.client.monitoring.rest; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import javax.ws.rs.core.Response; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.onap.policy.apex.core.deployment.ApexDeploymentException; import org.onap.policy.apex.core.deployment.EngineServiceFacade; import org.onap.policy.apex.model.basicmodel.concepts.ApexException; import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; import org.onap.policy.apex.model.enginemodel.concepts.AxEngineModel; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; /** * Test the monitoring rest resource. */ -@RunWith(PowerMockRunner.class) -@PrepareForTest(ApexMonitoringRestResource.class) public class RestResourceTest { @Mock - EngineServiceFacade engineServiceFacadeMock; + private EngineServiceFacade engineServiceFacadeMock; + private ApexMonitoringRestResource restResource; /** - * Set up the mocking for this test. + * Set up mocking of the engine service facade. * - * @throws Exception on mock setup failures + * @throws ApexException on engine service facade setup errors */ @Before - public void setupFacade() throws Exception { + public void initializeMocking() throws ApexException { MockitoAnnotations.initMocks(this); - PowerMockito.whenNew(EngineServiceFacade.class).withAnyArguments().thenReturn(engineServiceFacadeMock); - } - @Test - public void testRestResourceCreateSession() throws ApexException { final AxArtifactKey engineServiceKey = new AxArtifactKey("EngineServiceKey", "0.0.1"); final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); final AxArtifactKey[] engineServiceKeyArray = { engineKey }; final AxEngineModel engineModel = new AxEngineModel(engineServiceKeyArray[0]); - Mockito.when(engineServiceFacadeMock.getKey()).thenReturn(engineServiceKey); - Mockito.when(engineServiceFacadeMock.getEngineKeyArray()).thenReturn(engineServiceKeyArray); - Mockito.when(engineServiceFacadeMock.getEngineStatus(engineKey)).thenReturn(engineModel); + restResource = Mockito.spy(new ApexMonitoringRestResource()); + Mockito.doReturn(engineServiceFacadeMock).when(restResource).getEngineServiceFacade("apexServer", 12345); + + Mockito.doReturn(engineServiceKey).when(engineServiceFacadeMock).getKey(); + Mockito.doReturn(engineServiceKeyArray).when(engineServiceFacadeMock).getEngineKeyArray(); + Mockito.doReturn(engineModel).when(engineServiceFacadeMock).getEngineStatus(engineKey); + } + + @Test + public void testRestResourceCreateSession() throws ApexException { + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + assertTrue(((String) response.getEntity()).contains("Engine0:0.0.1")); + } + + @Test + public void testRestResourceCreateSessionWithApexModelKey() throws ApexException { + Mockito.doReturn(new AxArtifactKey("ModelKey:0.0.1")).when(engineServiceFacadeMock).getApexModelKey(); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + assertTrue(((String) response.getEntity()).contains("Engine0:0.0.1")); + } + + @Test + public void testRestResourceCreateSessionConnectException() throws ApexException { + Mockito.doThrow(new ApexDeploymentException("Connection Failed")).when(engineServiceFacadeMock).init(); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(500, response.getStatus()); + assertTrue(((String) response.getEntity()).contains("Error connecting to Apex Engine Service")); + } + + @Test + public void testRestResourceCreateSessionGetException() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doThrow(new ApexException("Exception on get")).when(engineServiceFacadeMock).getEngineStatus(engineKey); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceCreateSessionInfo() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doReturn("{}").when(engineServiceFacadeMock).getEngineInfo(engineKey); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceCreateSessionNullInfo() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doReturn(null).when(engineServiceFacadeMock).getEngineInfo(engineKey); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceCreateSessionEmptyInfo() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doReturn(" ").when(engineServiceFacadeMock).getEngineInfo(engineKey); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceCreateSessionExceptionInfo() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doThrow(new ApexException("Exception on info")).when(engineServiceFacadeMock).getEngineInfo(engineKey); - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); Response response = restResource.createSession("apexServer", 12345); assertEquals(200, response.getStatus()); - assertTrue(((String) response.getEntity()).contains(engineKey.getId())); } @Test public void testRestResourceStartEngine() throws ApexException { final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); Response response = restResource.startStop("apexServer", 12345, engineKey.getId(), "Start"); assertEquals(200, response.getStatus()); } @@ -90,36 +150,113 @@ public class RestResourceTest { public void testRestResourceStopEngine() throws ApexException { final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); Response response = restResource.startStop("apexServer", 12345, engineKey.getId(), "Stop"); assertEquals(200, response.getStatus()); } @Test + public void testRestResourceNotStartStopEngine() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + + Response response = restResource.startStop("apexServer", 12345, engineKey.getId(), "Hello"); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceInitExceptionStartStopEngine() throws ApexException { + Mockito.doThrow(new ApexDeploymentException("Exception on init")).when(engineServiceFacadeMock).init(); + + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + + Response response = restResource.startStop("apexServer", 12345, engineKey.getId(), "Hello"); + assertEquals(500, response.getStatus()); + } + + @Test + public void testRestResourceExceptionStartStopEngine() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doThrow(new ApexDeploymentException("Exception on Start/Stop")).when(engineServiceFacadeMock) + .startEngine(engineKey); + + Response response = restResource.startStop("apexServer", 12345, engineKey.getId(), "Start"); + assertEquals(500, response.getStatus()); + } + + @Test public void testRestResourceStartPeriodicEvents() throws ApexException { final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); Response response = restResource.periodiceventStartStop("apexServer", 12345, engineKey.getId(), "Start", 1000); assertEquals(200, response.getStatus()); } @Test - public void testRestResourceStopEPeriodicEvents() throws ApexException { + public void testRestResourceStopPeriodicEvents() throws ApexException { final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); Response response = restResource.periodiceventStartStop("apexServer", 12345, engineKey.getId(), "Stop", 1000); assertEquals(200, response.getStatus()); } @Test - public void testCounter() { - ApexMonitoringRestResource restResource = new ApexMonitoringRestResource(); + public void testRestResourceNotStartStopPeriodicEvents() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + + Response response = restResource.periodiceventStartStop("apexServer", 12345, engineKey.getId(), "Hello", 1000); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourceExceptionPeriodicEvents() throws ApexException { + final AxArtifactKey engineKey = new AxArtifactKey("Engine0", "0.0.1"); + Mockito.doThrow(new ApexDeploymentException("Exception on Periodic Events")).when(engineServiceFacadeMock) + .stopPerioidicEvents(engineKey); + Response response = restResource.periodiceventStartStop("apexServer", 12345, engineKey.getId(), "Stop", 1000); + assertEquals(500, response.getStatus()); + } + + @Test + public void testCounter() { ApexMonitoringRestResource.Counter counter = restResource.new Counter(1538338576, 1538338592); assertEquals(1538338576, counter.getTimestamp()); assertEquals(1538338592, counter.getValue()); } + + @Test + public void testSlidingWindow() { + ApexMonitoringRestResource.SlidingWindowList<String> slidingWindowList0 = restResource.new SlidingWindowList<>( + 2); + + assertFalse(slidingWindowList0.hashCode() == 0); + + assertTrue(slidingWindowList0.add("Hello")); + assertTrue(slidingWindowList0.add("Hi")); + assertTrue(slidingWindowList0.add("Howdy")); + + assertFalse(slidingWindowList0.equals(null)); + assertTrue(slidingWindowList0.equals(slidingWindowList0)); + + ApexMonitoringRestResource.SlidingWindowList<String> slidingWindowList1 = restResource.new SlidingWindowList<>( + 2); + ApexMonitoringRestResource.SlidingWindowList<String> slidingWindowList2 = restResource.new SlidingWindowList<>( + 2); + assertFalse(slidingWindowList0.equals(slidingWindowList1)); + assertFalse(slidingWindowList0.equals(slidingWindowList2)); + assertTrue(slidingWindowList1.equals(slidingWindowList2)); + ApexMonitoringRestResource.SlidingWindowList<String> slidingWindowList3 = restResource.new SlidingWindowList<>( + 3); + assertFalse(slidingWindowList1.equals(slidingWindowList3)); + ApexMonitoringRestResource.SlidingWindowList<Integer> slidingWindowList4 = restResource.new SlidingWindowList<>( + 3); + assertTrue(slidingWindowList3.add("Hello")); + assertTrue(slidingWindowList4.add(10)); + assertFalse(slidingWindowList3.equals(slidingWindowList4)); + } + + @Test + public void mopUp() { + assertEquals(engineServiceFacadeMock, restResource.getEngineServiceFacade("apexServer", 12345)); + } } diff --git a/context/context-test-utils/src/main/java/org/onap/policy/apex/context/test/concepts/TestContextTreeSetItem.java b/context/context-test-utils/src/main/java/org/onap/policy/apex/context/test/concepts/TestContextTreeSetItem.java index e38d9c640..22056db34 100644 --- a/context/context-test-utils/src/main/java/org/onap/policy/apex/context/test/concepts/TestContextTreeSetItem.java +++ b/context/context-test-utils/src/main/java/org/onap/policy/apex/context/test/concepts/TestContextTreeSetItem.java @@ -21,6 +21,7 @@ package org.onap.policy.apex.context.test.concepts; import java.io.Serializable; +import java.util.Arrays; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -45,7 +46,9 @@ public class TestContextTreeSetItem implements Serializable { * * @param setArray the set array */ - public TestContextTreeSetItem(final String[] setArray) {} + public TestContextTreeSetItem(final String[] setArray) { + this.setValue = new TreeSet<>(Arrays.asList(setArray)); + } /** * The Constructor. |