From c678c3a22f7761928f4be8e4f82f2f3c7ea417db Mon Sep 17 00:00:00 2001 From: "ning.xi" Date: Tue, 13 Aug 2019 05:20:20 +0000 Subject: add JUnit test in client deployment and client full Issue-ID: POLICY-1962 Change-Id: Ic10b0edc9364624161f71935f51f4411fe67c882 Signed-off-by: ning.xi --- .../deployment/rest/DeploymentExceptionTest.java | 37 ++++ .../deployment/rest/DeploymentRestMainTest.java | 226 +++++++++++++++++++++ .../rest/DeploymentRestParameterTest.java | 38 ++++ .../client/deployment/rest/ParameterCheckTest.java | 188 +++++++++++++++++ .../client/deployment/rest/RestResourceTest.java | 175 ++++++++++++++++ 5 files changed, 664 insertions(+) create mode 100644 client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentExceptionTest.java create mode 100644 client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestMainTest.java create mode 100644 client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestParameterTest.java create mode 100644 client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/ParameterCheckTest.java create mode 100644 client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/RestResourceTest.java (limited to 'client/client-deployment/src/test') diff --git a/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentExceptionTest.java b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentExceptionTest.java new file mode 100644 index 000000000..fc941acf0 --- /dev/null +++ b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentExceptionTest.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.client.deployment.rest; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +/** + * Test the REST Deployment exception. + * + */ +public class DeploymentExceptionTest { + + @Test + public void test() { + ApexDeploymentRestParameterException ame = new ApexDeploymentRestParameterException("a message"); + assertEquals("a message", ame.getMessage()); + } +} diff --git a/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestMainTest.java b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestMainTest.java new file mode 100644 index 000000000..2ca12ab9a --- /dev/null +++ b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestMainTest.java @@ -0,0 +1,226 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.client.deployment.rest; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.catchThrowable; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Test; +import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities; + +/** + * Test the periodic event manager utility. + */ +public class DeploymentRestMainTest { + private static InputStream systemInStream = System.in; + + @Test + public void testDeploymentClientOk() { + final String[] eventArgs = {"-t", "1", "-p", "1256"}; + assertThatCode(() -> ApexDeploymentRestMain.main(eventArgs)).doesNotThrowAnyException(); + } + + @Test + public void testDeploymentClientNoOptions() { + final String[] eventArgs = new String[] + {}; + assertThat(testApexDeploymentRestMainConstructor(eventArgs)).isEqualTo("*** StdOut ***\n\n*** StdErr ***\n"); + } + + @Test + public void testDeploymentClientBadOptions() { + final String[] eventArgs = + { "-zabbu" }; + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[null], State=STOPPED) " + + "parameter error, invalid command line arguments specified " + + ": Unrecognized option: -zabbu"); + } + + @Test + public void testDeploymentClientHelp() { + final String[] eventArgs = + { "-h" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "usage: org.onap.policy.apex.client.deployment.rest.ApexDeploymentRestMain [options...]"); + + } + + @Test + public void testDeploymentClientPortBad() { + final String[] eventArgs = + { "-p", "hello" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[null], State=STOPPED) " + + "parameter error, error parsing argument \"port\" :For input string: \"hello\""); + + } + + @Test + public void testDeploymentClientPortNegative() { + final String[] eventArgs = + { "-p", "-1" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: " + + "URI=http://localhost:-1/apexservices/, TTL=-1sec], State=STOPPED) parameters invalid, " + + "port must be greater than 1023 and less than 65536"); + + } + + @Test + public void testDeploymentClientTtlTooSmall() { + final String[] eventArgs = + { "-t", "-2" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: " + + "URI=http://localhost:18989/apexservices/, TTL=-2sec], State=STOPPED) parameters invalid, " + + "time to live must be greater than -1 (set to -1 to wait forever)"); + + } + + @Test + public void testDeploymentClientTooManyPars() { + final String[] eventArgs = + { "-t", "10", "-p", "12344", "aaa", "bbb" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[null], State=STOPPED) " + + "parameter error, too many command line arguments specified : [aaa, bbb]"); + } + + @Test + public void testDeploymentClientDefaultPars() { + assertThatCode(() -> { + ApexDeploymentRest monRest = new ApexDeploymentRest(); + monRest.shutdown(); + }).doesNotThrowAnyException(); + + } + + @Test + public void testDeploymentClientTtlNotNumber() { + final String[] eventArgs = + { "-t", "timetolive" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[null], State=STOPPED) " + + "parameter error, error parsing argument \"time-to-live\" :" + + "For input string: \"timetolive\""); + + } + + @Test + public void testDeploymentClientPortTooBig() { + final String[] eventArgs = + { "-p", "65536" }; + + Throwable thrown = catchThrowable(() -> new ApexDeploymentRestMain(eventArgs, System.out)); + + assertThat(thrown).isInstanceOf(Exception.class).hasMessageContaining( + "Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: " + + "URI=http://localhost:65536/apexservices/, TTL=-1sec], State=STOPPED) parameters invalid, " + + "port must be greater than 1023 and less than 65536"); + } + + @Test + public void testDeploymentOneSecStart() { + final String[] eventArgs = + { "-t", "1" }; + + assertThatCode(() -> { + ApexDeploymentRestMain monRestMain = new ApexDeploymentRestMain(eventArgs, System.out); + monRestMain.init(); + monRestMain.shutdown(); + }).doesNotThrowAnyException(); + + } + + @Test + public void testDeploymentForeverStart() { + final String[] eventArgs = + { "-t", "-1" }; + + ApexDeploymentRestMain monRestMain = new ApexDeploymentRestMain(eventArgs, System.out); + + Thread monThread = new Thread() { + @Override + public void run() { + monRestMain.init(); + } + }; + + assertThatCode(() -> { + monThread.start(); + ThreadUtilities.sleep(2000); + monRestMain.shutdown(); + }).doesNotThrowAnyException(); + + } + + @After + public void cleanUpStreamSetting() { + System.setIn(systemInStream); + } + + /** + * Run the application. + * + * @param eventArgs the command arguments + * @return a string containing the command output + */ + private String testApexDeploymentRestMainConstructor(final String[] eventArgs) { + final ByteArrayOutputStream baosOut = new ByteArrayOutputStream(); + final ByteArrayOutputStream baosErr = new ByteArrayOutputStream(); + + new ApexDeploymentRestMain(eventArgs, new PrintStream(baosOut, true)); + + InputStream testInput = new ByteArrayInputStream("Test Data for Input to WS".getBytes()); + System.setIn(testInput); + + String outString = baosOut.toString(); + String errString = baosErr.toString(); + + return "*** StdOut ***\n" + outString + "\n*** StdErr ***\n" + errString; + } +} diff --git a/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestParameterTest.java b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestParameterTest.java new file mode 100644 index 000000000..4fddffaef --- /dev/null +++ b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/DeploymentRestParameterTest.java @@ -0,0 +1,38 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.client.deployment.rest; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +/** + * Extra Deployment rest tests. + * + */ +public class DeploymentRestParameterTest { + + @Test + public void test() { + ApexDeploymentRestParameters parameters = new ApexDeploymentRestParameters(); + parameters.setRestPort(12345); + assertEquals(12345, parameters.getRestPort()); + } +} diff --git a/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/ParameterCheckTest.java b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/ParameterCheckTest.java new file mode 100644 index 000000000..a0c4c9c3e --- /dev/null +++ b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/ParameterCheckTest.java @@ -0,0 +1,188 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.client.deployment.rest; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import java.util.LinkedHashMap; +import java.util.Map; +import org.junit.Test; +import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; + +/** + * Test the parameter check class. + * + */ +public class ParameterCheckTest { + + @Test + public void testStartStop() { + assertEquals("START", ParameterCheck.StartStop.START.name()); + assertEquals("STOP", ParameterCheck.StartStop.STOP.name()); + } + + @Test + public void testHostName() { + assertNull(ParameterCheck.getHostName(null)); + + Map parameterMap = new LinkedHashMap<>(); + assertNull(ParameterCheck.getHostName(parameterMap)); + parameterMap.put("hostname", null); + assertNull(ParameterCheck.getHostName(parameterMap)); + + String[] hostnameBlankValue0 = {"", ""}; + parameterMap.put("hostname", hostnameBlankValue0); + assertNull(ParameterCheck.getHostName(parameterMap)); + + String[] hostnameBlankValue1 = {" ", " "}; + parameterMap.put("hostname", hostnameBlankValue1); + assertNull(ParameterCheck.getHostName(parameterMap)); + + String[] hostnameValue = {"hostname0", "hostname1"}; + parameterMap.put("hostname", hostnameValue); + assertEquals("hostname0", ParameterCheck.getHostName(parameterMap)); + } + + @Test + public void testPort() { + assertEquals(-1, ParameterCheck.getPort(null)); + + Map parameterMap = new LinkedHashMap<>(); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portBlankValue0 = {"", ""}; + parameterMap.put("port", portBlankValue0); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portBlankValue1 = {" ", " "}; + parameterMap.put("port", portBlankValue1); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portValueBad = {"port", "value"}; + parameterMap.put("port", portValueBad); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portValueRange0 = {"-1", "-1"}; + parameterMap.put("port", portValueRange0); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portValueRange1 = {"65536", "65536"}; + parameterMap.put("port", portValueRange1); + assertEquals(-1, ParameterCheck.getPort(parameterMap)); + + String[] portValue = {"12344", "23221"}; + parameterMap.put("port", portValue); + assertEquals(12344, ParameterCheck.getPort(parameterMap)); + } + + @Test + public void testEngineKey() { + assertEquals(null, ParameterCheck.getEngineKey(null)); + + Map parameterMap = new LinkedHashMap<>(); + parameterMap.put("Zooby", null); + assertEquals(null, ParameterCheck.getEngineKey(parameterMap)); + + parameterMap.put("AxArtifactKey", null); + assertEquals(null, ParameterCheck.getEngineKey(parameterMap)); + parameterMap.remove("AxArtifactKey"); + + parameterMap.put("AxArtifactKey#zooby", null); + assertEquals(null, ParameterCheck.getEngineKey(parameterMap)); + parameterMap.remove("AxArtifactKey#zooby"); + + parameterMap.put("AxArtifactKey#zooby#looby", null); + assertEquals(null, ParameterCheck.getEngineKey(parameterMap)); + parameterMap.remove("AxArtifactKey#zooby#looby"); + + parameterMap.put("AxArtifactKey#Name:0.0.1", null); + assertEquals(new AxArtifactKey("Name", "0.0.1"), ParameterCheck.getEngineKey(parameterMap)); + } + + @Test + public void testStartStopValue() { + assertEquals(null, ParameterCheck.getStartStop(null, null)); + + Map parameterMap = new LinkedHashMap<>(); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, null)); + + parameterMap.put("Zooby", null); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, null)); + + AxArtifactKey engineKey = new AxArtifactKey("Engine", "0.0.1"); + + parameterMap.put("Zooby", null); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String key = "AxArtifactKey#" + engineKey.getId(); + + parameterMap.put(key, null); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String[] startStopBlankValue0 = {"", ""}; + parameterMap.put(key, startStopBlankValue0); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String[] startStopBlankValue1 = {" ", " "}; + parameterMap.put(key, startStopBlankValue1); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String[] startStopValueBad = {key, "value"}; + parameterMap.put(key, startStopValueBad); + assertEquals(null, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String[] startValue = {"START", "STOP"}; + parameterMap.put(key, startValue); + assertEquals(ParameterCheck.StartStop.START, ParameterCheck.getStartStop(parameterMap, engineKey)); + + String[] stopValue = {"STOP", "START"}; + parameterMap.put(key, stopValue); + assertEquals(ParameterCheck.StartStop.STOP, ParameterCheck.getStartStop(parameterMap, engineKey)); + } + + @Test + public void testLong() { + assertEquals(-1, ParameterCheck.getLong(null, null)); + + Map parameterMap = new LinkedHashMap<>(); + assertEquals(-1, ParameterCheck.getLong(parameterMap, null)); + + parameterMap.put("long0", null); + assertEquals(-1, ParameterCheck.getLong(parameterMap, "longx")); + assertEquals(-1, ParameterCheck.getLong(parameterMap, "long0")); + + String[] longBlankValue0 = {"", ""}; + parameterMap.put("long1", longBlankValue0); + assertEquals(-1, ParameterCheck.getLong(parameterMap, "long1")); + + String[] longBlankValue1 = {" ", " "}; + parameterMap.put("long2", longBlankValue1); + assertEquals(-1, ParameterCheck.getLong(parameterMap, "long2")); + + String[] longValueBad = {"long", "value"}; + parameterMap.put("long3", longValueBad); + assertEquals(-1, ParameterCheck.getLong(parameterMap, "long3")); + + String[] longValue = {"12345", "6789"}; + parameterMap.put("long4", longValue); + assertEquals(12345, ParameterCheck.getLong(parameterMap, "long4")); + } +} diff --git a/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/RestResourceTest.java b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/RestResourceTest.java new file mode 100644 index 000000000..e8625af5e --- /dev/null +++ b/client/client-deployment/src/test/java/org/onap/policy/apex/client/deployment/rest/RestResourceTest.java @@ -0,0 +1,175 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.client.deployment.rest; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import javax.ws.rs.core.Response; +import org.junit.Before; +import org.junit.Test; +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; + +/** + * Test the Deployment rest resource. + */ +public class RestResourceTest { + @Mock + private EngineServiceFacade engineServiceFacadeMock; + private ApexDeploymentRestResource restResource; + + /** + * Set up mocking of the engine service facade. + * + * @throws ApexException on engine service facade setup errors + */ + @Before + public void initializeMocking() throws ApexException { + MockitoAnnotations.initMocks(this); + + 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]); + + restResource = Mockito.spy(new ApexDeploymentRestResource()); + 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()); + } + + @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()); + } + + @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); + + Response response = restResource.createSession("apexServer", 12345); + assertEquals(200, response.getStatus()); + } + + @Test + public void testRestResourcemodelUpload() throws ApexException { + InputStream uploadedInputStream = + new ByteArrayInputStream("src/test/resources/models/SmallModel.json".getBytes()); + + Response response = restResource.modelUpload("apexServer", 12345, + uploadedInputStream, "SmallModel.json", false, false); + assertEquals(200, response.getStatus()); + assertTrue(((String) response.getEntity()).contains("SmallModel.json")); + } + + @Test + public void testRestResourcemodelUploadNoConnection() throws ApexException { + Mockito.doThrow(new ApexDeploymentException("Connection Failed")).when(engineServiceFacadeMock).init(); + + InputStream uploadedInputStream = + new ByteArrayInputStream("src/test/resources/models/SmallModel.json".getBytes()); + + Response response = + restResource.modelUpload("apexServer", 12345, uploadedInputStream, "SmallModel.json", false, false); + assertEquals(500, response.getStatus()); + } + + @Test + public void testRestResourcemodelUploadDeploy() throws ApexException { + + InputStream uploadedInputStream = + new ByteArrayInputStream("src/test/resources/models/SmallModel.json".getBytes()); + + Mockito.doThrow(new ApexDeploymentException("Connection Failed")).when(engineServiceFacadeMock) + .deployModel("SmallModel.json", uploadedInputStream, false, true); + + + Response response = + restResource.modelUpload("apexServer", 12345, uploadedInputStream, "SmallModel.json", false, true); + assertEquals(500, response.getStatus()); + assertTrue(((String) response.getEntity()).contains("Error updating model on engine service")); + } +} -- cgit 1.2.3-korg