diff options
author | Przemyslaw Wasala <przemyslaw.wasala@nokia.com> | 2018-08-21 09:58:42 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-08-21 09:58:42 +0000 |
commit | 062d6042a235f96d7298a322495691ca8919fc54 (patch) | |
tree | 415e83a8f7ac3f2a4b2db6ecc68a131d3869418a /prh-app-server | |
parent | f42037ad595e4c18e0ef83d8e2bd42a5e36dcda3 (diff) | |
parent | 741184db0fe9739826ddddca8793217a50b437e4 (diff) |
Merge "Cleaning AAI client after refactor"
Diffstat (limited to 'prh-app-server')
4 files changed, 0 insertions, 309 deletions
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTask.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTask.java deleted file mode 100644 index 959dc9cd..00000000 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTask.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * ============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 org.onap.dcaegen2.services.prh.tasks; - -import java.util.Optional; -import org.onap.dcaegen2.services.prh.exceptions.AaiNotFoundException; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import org.onap.dcaegen2.services.prh.service.AaiConsumerClient; - -public abstract class AaiConsumerTask { - - abstract Optional<String> consume(ConsumerDmaapModel message) throws AaiNotFoundException; - - abstract AaiConsumerClient resolveClient(); - - protected abstract String execute(ConsumerDmaapModel consumerDmaapModel) throws AaiNotFoundException; -} diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImpl.java deleted file mode 100644 index 63d1e0da..00000000 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * ============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 org.onap.dcaegen2.services.prh.tasks; - -import java.io.IOException; -import java.util.Optional; -import org.onap.dcaegen2.services.prh.config.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.configuration.AppConfig; -import org.onap.dcaegen2.services.prh.configuration.Config; -import org.onap.dcaegen2.services.prh.exceptions.AaiNotFoundException; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import org.onap.dcaegen2.services.prh.service.AaiConsumerClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class AaiConsumerTaskImpl extends AaiConsumerTask { - - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - - private final Config prhAppConfig; - private AaiConsumerClient aaiConsumerClient; - - @Autowired - public AaiConsumerTaskImpl(AppConfig prhAppConfig) { - this.prhAppConfig = prhAppConfig; - } - - @Override - Optional<String> consume(ConsumerDmaapModel consumerDmaapModel) throws AaiNotFoundException { - logger.trace("Method called with arg {}", consumerDmaapModel); - try { - return aaiConsumerClient.getHttpResponse(consumerDmaapModel); - } catch (IOException e) { - logger.warn("Get request not successful", e); - throw new AaiNotFoundException("Get request not successful"); - } - } - - @Override - public String execute(ConsumerDmaapModel consumerDmaapModel) throws AaiNotFoundException { - consumerDmaapModel = Optional.ofNullable(consumerDmaapModel) - .orElseThrow(() -> new AaiNotFoundException("Invoked null object to AAI task")); - logger.trace("Method called with arg {}", consumerDmaapModel); - aaiConsumerClient = resolveClient(); - return consume(consumerDmaapModel).orElseThrow(() -> new AaiNotFoundException("Null response code")); - } - - protected AaiClientConfiguration resolveConfiguration() { - return prhAppConfig.getAaiClientConfiguration(); - } - - @Override - AaiConsumerClient resolveClient() { - return Optional.ofNullable(aaiConsumerClient).orElseGet(() -> new AaiConsumerClient(resolveConfiguration())); - } -} diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImplTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImplTest.java deleted file mode 100644 index ea458a0f..00000000 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskImplTest.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * ============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 org.onap.dcaegen2.services.prh.tasks; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.util.Optional; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.function.Executable; -import org.onap.dcaegen2.services.prh.config.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.config.ImmutableAaiClientConfiguration; -import org.onap.dcaegen2.services.prh.configuration.AppConfig; -import org.onap.dcaegen2.services.prh.exceptions.AaiNotFoundException; -import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel; -import org.onap.dcaegen2.services.prh.service.AaiConsumerClient; - -/** - * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/17/18 - */ -class AaiConsumerTaskImplTest { - - private static ConsumerDmaapModel consumerDmaapModel; - private static AaiConsumerTaskImpl aaiConsumerTask; - - private static final String AAI_HOST = "/aai/v12/network/pnfs/pnf/NOKQTFCOC540002E"; - private static final Integer PORT = 1234; - private static final String PROTOCOL = "https"; - private static final String USER_NAME_PASSWORD = "PRH"; - private static final String BASE_PATH = "/aai/v12"; - private static final String PNF_PATH = "/network/pnfs/pnf"; - - private static AaiClientConfiguration aaiClientConfiguration; - private static AaiConsumerClient aaiConsumerClient; - private static AppConfig appConfig; - - @BeforeAll - static void setUp() { - aaiClientConfiguration = new ImmutableAaiClientConfiguration.Builder() - .aaiHost(AAI_HOST) - .aaiPort(PORT) - .aaiProtocol(PROTOCOL) - .aaiUserName(USER_NAME_PASSWORD) - .aaiUserPassword(USER_NAME_PASSWORD) - .aaiIgnoreSslCertificateErrors(true) - .aaiBasePath(BASE_PATH) - .aaiPnfPath(PNF_PATH) - .build(); - consumerDmaapModel = ImmutableConsumerDmaapModel.builder().ipv4("10.16.123.234") - .ipv6("0:0:0:0:0:FFFF:0A10:7BEA") - .pnfName("NOKQTFCOC540002E").build(); - appConfig = mock(AppConfig.class); - - } - - @Test - void whenPassedObjectDoesntFit_ThrowsPrhTaskException() { - //given/when - when(appConfig.getAaiClientConfiguration()).thenReturn(aaiClientConfiguration); - aaiConsumerTask = new AaiConsumerTaskImpl(appConfig); - Executable executableCode = () -> aaiConsumerTask.execute(null); - //then - Assertions - .assertThrows(PrhTaskException.class, executableCode, "Passing wrong object type to execute function"); - - } - - @Test - void whenPassedObjectFits_ReturnsCorrectStatus() throws PrhTaskException, IOException { - //given/when - getAaiConsumerTask_WhenMockingHttpResponseCode("200", false); - String response = aaiConsumerTask.execute(consumerDmaapModel); - - //then - verify(aaiConsumerClient, times(1)).getHttpResponse(any(ConsumerDmaapModel.class)); - verifyNoMoreInteractions(aaiConsumerClient); - Assertions.assertEquals("200", response); - } - - @Test - void whenPassedObjectFits_butIncorrectResponseReturns() throws IOException, AaiNotFoundException { - //given/when - getAaiConsumerTask_WhenMockingHttpResponseCode("400", false); - String response = aaiConsumerTask.execute(consumerDmaapModel); - - //then - verify(aaiConsumerClient, times(1)).getHttpResponse(any(ConsumerDmaapModel.class)); - verifyNoMoreInteractions(aaiConsumerClient); - Assertions.assertEquals("400", response); - } - - @Test - void whenPassedObjectFits_ThrowsIoExceptionAndHandleIt() throws IOException { - //given/when - getAaiConsumerTask_WhenMockingHttpResponseCode(null, true); - Executable executableCode = () -> aaiConsumerTask.execute(any(ConsumerDmaapModel.class)); - Assertions - .assertThrows(PrhTaskException.class, executableCode, "HttpClient throws IOException"); - - //then - verifyNoMoreInteractions(aaiConsumerClient); - } - - - private static void getAaiConsumerTask_WhenMockingHttpResponseCode(String httpResponseCode, boolean throwsException) - throws IOException { - aaiConsumerClient = mock(AaiConsumerClient.class); - if (throwsException) { - when(aaiConsumerClient.getHttpResponse(consumerDmaapModel)).thenThrow(IOException.class); - } else { - when(aaiConsumerClient.getHttpResponse(consumerDmaapModel)).thenReturn(Optional.of(httpResponseCode)); - } - when(appConfig.getAaiClientConfiguration()).thenReturn(aaiClientConfiguration); - aaiConsumerTask = spy(new AaiConsumerTaskImpl(appConfig)); - when(aaiConsumerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); - doReturn(aaiConsumerClient).when(aaiConsumerTask).resolveClient(); - } - -}
\ No newline at end of file diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskSpy.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskSpy.java deleted file mode 100644 index 28af4494..00000000 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AaiConsumerTaskSpy.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * PROJECT - * ================================================================================ - * 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 org.onap.dcaegen2.services.prh.tasks; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; - -import org.onap.dcaegen2.services.prh.config.AaiClientConfiguration; - -import org.onap.dcaegen2.services.prh.configuration.AppConfig; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; - -@Configuration -public class AaiConsumerTaskSpy { - - /** - * Mocking bean for tests. - * - * @return A&AI ConsumerTask spy - */ - @Bean - @Primary - public AaiConsumerTask registerSimpleAaiPublisherTask() { - AppConfig appConfig = mock(AppConfig.class); - when(appConfig.getAaiClientConfiguration()).thenReturn(mock(AaiClientConfiguration.class)); - return spy(new AaiConsumerTaskImpl(appConfig)); - } -}
\ No newline at end of file |