X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-interactions%2Fmodel-actors%2Factor.test%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontrolloop%2Factor%2Ftest%2FBasicHttpOperation.java;h=4bb75dc7436814837b57235d2a0288b9b0679c53;hb=e3938e43b8a1f02f74368ecb75c38530285feac0;hp=e803df8c9b87c6c0365fd2a2fa0efb89185152bd;hpb=467247c7970f9ae83464d78929ed970bbf03c593;p=policy%2Fmodels.git diff --git a/models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicHttpOperation.java b/models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicHttpOperation.java index e803df8c9..4bb75dc74 100644 --- a/models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicHttpOperation.java +++ b/models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicHttpOperation.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +21,17 @@ package org.onap.policy.controlloop.actor.test; -import static org.mockito.Mockito.when; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.lenient; import java.util.Map; import java.util.concurrent.CompletableFuture; +import javax.ws.rs.client.AsyncInvoker; import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation.Builder; import javax.ws.rs.client.InvocationCallback; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -37,24 +43,28 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig; /** * Superclass for various HttpOperation tests. - * - * @param request type */ -public class BasicHttpOperation extends BasicOperation { +public class BasicHttpOperation extends BasicOperation { protected static final String MY_CLIENT = "my-client"; - protected static final String BASE_URI = "/base-uri"; - protected static final String PATH = "/my-path"; + protected static final String BASE_URI = "http://my-host:6969/base-uri/"; + protected static final String PATH = "my-path/"; @Captor protected ArgumentCaptor> callbackCaptor; @Captor - protected ArgumentCaptor> requestCaptor; + protected ArgumentCaptor> requestCaptor; @Captor protected ArgumentCaptor> headerCaptor; @Mock protected HttpConfig config; @Mock + protected WebTarget webTarget; + @Mock + protected Builder webBuilder; + @Mock + protected AsyncInvoker webAsync; + @Mock protected HttpClient client; @Mock protected HttpClientFactory factory; @@ -86,11 +96,21 @@ public class BasicHttpOperation extends BasicOperation { public void setUpBasic() { super.setUpBasic(); - when(factory.get(MY_CLIENT)).thenReturn(client); + lenient().when(factory.get(MY_CLIENT)).thenReturn(client); - when(rawResponse.getStatus()).thenReturn(200); + lenient().when(rawResponse.getStatus()).thenReturn(200); - when(client.getBaseUrl()).thenReturn(BASE_URI); + lenient().when(webBuilder.async()).thenReturn(webAsync); + lenient().when(webBuilder.accept(any(MediaType.class))).thenReturn(webBuilder); + lenient().when(webBuilder.accept(any(String.class))).thenReturn(webBuilder); + + lenient().when(webTarget.request()).thenReturn(webBuilder); + lenient().when(webTarget.path(any())).thenReturn(webTarget); + lenient().when(webTarget.queryParam(any(), any())).thenReturn(webTarget); + + lenient().when(client.getWebTarget()).thenReturn(webTarget); + + lenient().when(client.getBaseUrl()).thenReturn(BASE_URI); initConfig(); } @@ -99,8 +119,8 @@ public class BasicHttpOperation extends BasicOperation { * Initializes a configuration. */ protected void initConfig() { - when(config.getClient()).thenReturn(client); - when(config.getPath()).thenReturn(PATH); + lenient().when(config.getClient()).thenReturn(client); + lenient().when(config.getPath()).thenReturn(PATH); } /** @@ -110,8 +130,19 @@ public class BasicHttpOperation extends BasicOperation { * @return a function that provides the response to the call */ protected Answer> provideResponse(Response response) { + return provideResponse(response, 0); + } + + /** + * Provides a response to an asynchronous HttpClient call. + * + * @param response response to be provided to the call + * @param index index of the callback within the arguments + * @return a function that provides the response to the call + */ + protected Answer> provideResponse(Response response, int index) { return args -> { - InvocationCallback cb = args.getArgument(0); + InvocationCallback cb = args.getArgument(index); cb.completed(response); return CompletableFuture.completedFuture(response); };