From 2857310c33726032ce77449d91e87864e6bf4108 Mon Sep 17 00:00:00 2001 From: "Bansal, Nitin (nb121v)" Date: Tue, 3 Apr 2018 12:31:43 -0400 Subject: Moving Historical Queries to spring boot Change-Id: If4042f3b19b25b086e8f0c4b3723afe9839d994a Issue-ID: AAI-802 Signed-off-by: Bansal, Nitin (nb121v) --- .../exception/DataRouterExceptionTest.java | 49 ---------- .../aai/datarouter/query/ChameleonRouterTest.java | 104 +++++++++++++++++++++ .../onap/aai/datarouter/query/ChampRouterTest.java | 94 +++++++++++++++++++ src/test/resources/chameleon-response.json | 13 +++ src/test/resources/champ-response.json | 16 ++++ 5 files changed, 227 insertions(+), 49 deletions(-) delete mode 100644 src/test/java/org/onap/aai/datarouter/exception/DataRouterExceptionTest.java create mode 100644 src/test/java/org/onap/aai/datarouter/query/ChameleonRouterTest.java create mode 100644 src/test/java/org/onap/aai/datarouter/query/ChampRouterTest.java create mode 100644 src/test/resources/chameleon-response.json create mode 100644 src/test/resources/champ-response.json (limited to 'src/test') diff --git a/src/test/java/org/onap/aai/datarouter/exception/DataRouterExceptionTest.java b/src/test/java/org/onap/aai/datarouter/exception/DataRouterExceptionTest.java deleted file mode 100644 index 9c16d14..0000000 --- a/src/test/java/org/onap/aai/datarouter/exception/DataRouterExceptionTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * ================================================================================ - * 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.aai.datarouter.exception; - -import org.junit.Assert; -import org.junit.Test; - -import javax.ws.rs.core.Response; - -public class DataRouterExceptionTest { - - @Test - public void testDataRouterError(){ - DataRouterError error1 = DataRouterError.DL_PARSE_100; - Assert.assertEquals("DL-100", error1.getId()); - Assert.assertNotNull(error1.getMessage()); - Assert.assertEquals(Response.Status.BAD_REQUEST, error1.getHttpStatus()); - } - - @Test - public void testBaseDataRouterException(){ - BaseDataRouterException exp1 = new BaseDataRouterException("id-1"); - Assert.assertEquals(exp1.getId(), "id-1"); - - BaseDataRouterException exp2 = new BaseDataRouterException("id-1", "test-error"); - Assert.assertEquals(exp2.getId(), "id-1"); - - BaseDataRouterException exp3 = new BaseDataRouterException("id-1", "test-error", new Throwable()); - Assert.assertEquals(exp3.getId(), "id-1"); - } -} diff --git a/src/test/java/org/onap/aai/datarouter/query/ChameleonRouterTest.java b/src/test/java/org/onap/aai/datarouter/query/ChameleonRouterTest.java new file mode 100644 index 0000000..27c2606 --- /dev/null +++ b/src/test/java/org/onap/aai/datarouter/query/ChameleonRouterTest.java @@ -0,0 +1,104 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 Amdocs + * ================================================================================ + * 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.aai.datarouter.query; + +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashMap; + +import javax.ws.rs.core.MediaType; + +import org.apache.commons.io.IOUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.restclient.client.OperationResult; +import org.onap.aai.restclient.client.RestClient; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.google.gson.JsonParser; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ ChameleonRouter.class, RestClient.class }) +public class ChameleonRouterTest { + + ChameleonRouter chameleonRouter; + RestClient mockRestClient = mock(RestClient.class); + + JsonParser parser = new JsonParser(); + + @SuppressWarnings("unchecked") + @Before + public void init() throws Exception { + RestClientConfig config = PowerMockito.mock(RestClientConfig.class); + PowerMockito.when(config.getCertPassword()).thenReturn("password"); + + PowerMockito.whenNew(RestClient.class).withAnyArguments().thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.validateServerHostname(any(Boolean.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.validateServerCertChain(any(Boolean.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.clientCertFile(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.clientCertPassword(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.trustStore(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.connectTimeoutMs(any(Integer.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.readTimeoutMs(any(Integer.class))).thenReturn(mockRestClient); + + chameleonRouter = new ChameleonRouter("http:///test", config); + } + + @Test + public void testProcess() throws Exception { + OperationResult chameleonResponse = buildChameleonResponse(); + PowerMockito.when(mockRestClient.get(any(String.class), any(HashMap.class), any(MediaType.class))) + .thenReturn(chameleonResponse); + + String chameleonRouterResponse = chameleonRouter.process("/objects/364d646e-c947-4010-a66a-adf06aa306fb", "", null); + Assert.assertEquals(parser.parse(chameleonRouterResponse), parser.parse(readSampleChampResponse())); + + } + + private OperationResult buildChameleonResponse() throws IOException { + OperationResult response = new OperationResult(); + response.setResultCode(200); + + response.setResult(readSampleChameleonResponse()); + return response; + } + + private String readSampleChampResponse() throws IOException { + FileInputStream event = new FileInputStream(new File("src/test/resources/champ-response.json")); + String json = IOUtils.toString(event, "UTF-8"); + return json; + } + + private String readSampleChameleonResponse() throws IOException { + FileInputStream event = new FileInputStream(new File("src/test/resources/chameleon-response.json")); + String json = IOUtils.toString(event, "UTF-8"); + return json; + } + +} diff --git a/src/test/java/org/onap/aai/datarouter/query/ChampRouterTest.java b/src/test/java/org/onap/aai/datarouter/query/ChampRouterTest.java new file mode 100644 index 0000000..1bf7c88 --- /dev/null +++ b/src/test/java/org/onap/aai/datarouter/query/ChampRouterTest.java @@ -0,0 +1,94 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 Amdocs + * ================================================================================ + * 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.aai.datarouter.query; + +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashMap; + +import javax.ws.rs.core.MediaType; + +import org.apache.commons.io.IOUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.restclient.client.OperationResult; +import org.onap.aai.restclient.client.RestClient; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ ChampRouter.class, RestClient.class }) +public class ChampRouterTest { + + ChampRouter champRouter; + RestClient mockRestClient = mock(RestClient.class); + + @SuppressWarnings("unchecked") + @Before + public void init() throws Exception { + RestClientConfig config = PowerMockito.mock(RestClientConfig.class); + PowerMockito.when(config.getCertPassword()).thenReturn("password"); + + PowerMockito.whenNew(RestClient.class).withAnyArguments().thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.validateServerHostname(any(Boolean.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.validateServerCertChain(any(Boolean.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.clientCertFile(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.clientCertPassword(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.trustStore(any(String.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.connectTimeoutMs(any(Integer.class))).thenReturn(mockRestClient); + PowerMockito.when(mockRestClient.readTimeoutMs(any(Integer.class))).thenReturn(mockRestClient); + + champRouter = new ChampRouter("http:///test", config); + } + + @Test + public void testProcess() throws Exception { + OperationResult champResponse = buildChampResponse(); + PowerMockito.when(mockRestClient.get(any(String.class), any(HashMap.class), any(MediaType.class))) + .thenReturn(champResponse); + + String champRouterResponse = champRouter.process("/object/1234", "", null); + Assert.assertEquals(champRouterResponse, readSampleChampResponse()); + + } + + private OperationResult buildChampResponse() throws IOException { + OperationResult response = new OperationResult(); + response.setResultCode(200); + + response.setResult(readSampleChampResponse()); + return response; + } + + private String readSampleChampResponse() throws IOException { + FileInputStream event = new FileInputStream(new File("src/test/resources/champ-response.json")); + String json = IOUtils.toString(event, "UTF-8"); + return json; + } + +} diff --git a/src/test/resources/chameleon-response.json b/src/test/resources/chameleon-response.json new file mode 100644 index 0000000..056bd46 --- /dev/null +++ b/src/test/resources/chameleon-response.json @@ -0,0 +1,13 @@ +{ + "ptnii-equip-name": "mtanj119snd-updated-now", + "equip-type": "phone", + "equip-vendor": "Samsung", + "fqdn": "mtanjrsv119.mtanj.sbcglobal.net", + "purpose": "", + "ipv4-oam-address": "135.182.138.60", + "hostname": "phonehost", + "equip-model": "DL380p-nd", + "aai-uuid": "364d646e-c947-4010-a66a-adf06aa306fb", + "resource-version": "1477013499", + "type": "pserver" +} \ No newline at end of file diff --git a/src/test/resources/champ-response.json b/src/test/resources/champ-response.json new file mode 100644 index 0000000..105f408 --- /dev/null +++ b/src/test/resources/champ-response.json @@ -0,0 +1,16 @@ +{ + "key": "364d646e-c947-4010-a66a-adf06aa306fb", + "type": "pserver", + "properties": { + "ptnii-equip-name": "mtanj119snd-updated-now", + "equip-type": "phone", + "equip-vendor": "Samsung", + "fqdn": "mtanjrsv119.mtanj.sbcglobal.net", + "purpose": "", + "ipv4-oam-address": "135.182.138.60", + "hostname": "phonehost", + "equip-model": "DL380p-nd", + "aai-uuid": "364d646e-c947-4010-a66a-adf06aa306fb", + "resource-version": "1477013499" + } +} \ No newline at end of file -- cgit 1.2.3-korg