From 2fad0921d9dd9f99230a8a79dca0931f2e365663 Mon Sep 17 00:00:00 2001 From: pwielebs Date: Sat, 31 Mar 2018 13:12:34 +0200 Subject: UT added, project structure corrected Change-Id: I4695f56471e67e4519569bf8d72be1effe9f7015 Issue-ID: DCAEGEN2-407 Signed-off-by: pwielebs --- .../service/AAIExtendedHttpClientImplTest.java | 84 ++++++++++++++++++++++ .../services/service/AAIHttpClientImplTest.java | 56 +++++++++++++++ .../services/service/utils/HTTPConfiguration.java | 62 ++++++++++++++++ .../java/services/service/utils/HttpUtilsTest.java | 42 +++++++++++ 4 files changed, 244 insertions(+) create mode 100644 prh-aai-client/src/test/java/services/service/AAIExtendedHttpClientImplTest.java create mode 100644 prh-aai-client/src/test/java/services/service/AAIHttpClientImplTest.java create mode 100644 prh-aai-client/src/test/java/services/service/utils/HTTPConfiguration.java create mode 100644 prh-aai-client/src/test/java/services/service/utils/HttpUtilsTest.java (limited to 'prh-aai-client/src/test/java') diff --git a/prh-aai-client/src/test/java/services/service/AAIExtendedHttpClientImplTest.java b/prh-aai-client/src/test/java/services/service/AAIExtendedHttpClientImplTest.java new file mode 100644 index 00000000..c46e034c --- /dev/null +++ b/prh-aai-client/src/test/java/services/service/AAIExtendedHttpClientImplTest.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA 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 services.service; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import services.config.AAIHttpClientConfiguration; + +public class AAIExtendedHttpClientImplTest { + + private AAIExtendedHttpClientImpl testedObject; + private AAIHttpClientConfiguration aaiHttpClientConfigurationMock = mock(AAIHttpClientConfiguration.class); + private CloseableHttpClient closeableHttpClientMock = mock(CloseableHttpClient.class); + + @Before + public void init() throws NoSuchFieldException, IllegalAccessException { + when(aaiHttpClientConfigurationMock.aaiHost()).thenReturn("hostTest"); + when(aaiHttpClientConfigurationMock.aaiProtocol()).thenReturn("https"); + when(aaiHttpClientConfigurationMock.aaiHostPortNumber()).thenReturn(1234); + testedObject = new AAIExtendedHttpClientImpl(aaiHttpClientConfigurationMock); + setField(); + } + + @Test + public void getExtendedDetails_success() throws IOException { + String expectedResult = "getExtendedDetailsOK"; + Map queryParams = new HashMap<>(); + queryParams.put("key1", "value1"); + Map headers = new HashMap<>(); + headers.put("headerKey", "headerValue"); + + when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class))). + thenReturn(Optional.of(expectedResult)); + String actualResult = testedObject.getExtendedDetails("testPath", queryParams, headers); + Assert.assertEquals(expectedResult, actualResult); + } + + @Test + public void getExtendedDetails_returnsNull() throws IOException { + when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class))). + thenReturn(Optional.empty()); + String actualResult = testedObject.getExtendedDetails("testPath", new HashMap<>(), new HashMap<>()); + Assert.assertNull(actualResult); + } + + private void setField() throws NoSuchFieldException, IllegalAccessException { + Field field = testedObject.getClass().getDeclaredField("closeableHttpClient"); + field.setAccessible(true); + field.set(testedObject, closeableHttpClientMock); + } + + +} diff --git a/prh-aai-client/src/test/java/services/service/AAIHttpClientImplTest.java b/prh-aai-client/src/test/java/services/service/AAIHttpClientImplTest.java new file mode 100644 index 00000000..242e56d4 --- /dev/null +++ b/prh-aai-client/src/test/java/services/service/AAIHttpClientImplTest.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA 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 services.service; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import services.config.AAIHttpClientConfiguration; +import services.service.utils.HTTPConfiguration; + +import static org.junit.Assert.assertNotNull; + + +public class AAIHttpClientImplTest { + + private AAIHttpClientImpl aaiHttpClientImpl; + private AAIHttpClientConfiguration aaiHttpClientConfiguration; + + + @Before + public void setup() { + aaiHttpClientConfiguration = new HTTPConfiguration(); + aaiHttpClientImpl = new AAIHttpClientImpl(aaiHttpClientConfiguration); + } + + @After + public void teaDown() { + aaiHttpClientImpl = null; + } + + @Test + public void getAAIHttpClientObject_shouldNotBeNull() { + aaiHttpClientImpl.getAAIHttpClient(); + assertNotNull(aaiHttpClientImpl.getAAIHttpClient()); + } + +} + diff --git a/prh-aai-client/src/test/java/services/service/utils/HTTPConfiguration.java b/prh-aai-client/src/test/java/services/service/utils/HTTPConfiguration.java new file mode 100644 index 00000000..fb7b204a --- /dev/null +++ b/prh-aai-client/src/test/java/services/service/utils/HTTPConfiguration.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA 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 services.service.utils; + +import services.config.AAIHttpClientConfiguration; + +public class HTTPConfiguration extends AAIHttpClientConfiguration { + + private static final String AAI_HOST_NAME = "1.2.3.4"; + private static final Integer AAI_HOST_PORT_NUMBER = 1234; + private static final String AAI_HOST_PROTOCOL = "https"; + private static final String AAI_USER_NAME = "PRH"; + private static final String AAI_USER_PASS = "PRH"; + + @Override + public String aaiHost() { + return AAI_HOST_NAME; + } + + @Override + public Integer aaiHostPortNumber() { + return AAI_HOST_PORT_NUMBER; + } + + @Override + public String aaiProtocol() { + return AAI_HOST_PROTOCOL; + } + + @Override + public String aaiUserName() { + return AAI_USER_NAME; + } + + @Override + public String aaiUserPassword() { + return AAI_USER_PASS; + } + + @Override + public boolean aaiIgnoreSSLCertificateErrors() { + return true; + } +} \ No newline at end of file diff --git a/prh-aai-client/src/test/java/services/service/utils/HttpUtilsTest.java b/prh-aai-client/src/test/java/services/service/utils/HttpUtilsTest.java new file mode 100644 index 00000000..d54b335b --- /dev/null +++ b/prh-aai-client/src/test/java/services/service/utils/HttpUtilsTest.java @@ -0,0 +1,42 @@ +/*- + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA 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 services.service.utils; + +import org.apache.http.HttpStatus; +import org.junit.Test; +import services.utils.HttpUtils; + +import static junit.framework.TestCase.assertFalse; +import static junit.framework.TestCase.assertTrue; + + +public class HttpUtilsTest { + + @Test + public void isSuccessfulResponseCode_shouldReturnTrue() { + assertTrue(HttpUtils.isSuccessfulResponseCode(HttpUtils.SC_ACCEPTED)); + } + + @Test + public void isSuccessfulResponseCode_shouldReturnFalse() { + assertFalse(HttpUtils.isSuccessfulResponseCode(HttpStatus.SC_BAD_GATEWAY)); + } +} \ No newline at end of file -- cgit 1.2.3-korg