diff options
Diffstat (limited to 'policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java')
-rw-r--r-- | policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java | 159 |
1 files changed, 49 insertions, 110 deletions
diff --git a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java index 5d609a65..11067974 100644 --- a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java +++ b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/http/server/test/HttpClientTest.java @@ -2,8 +2,9 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd. + * Modifications Copyright 2023-2024 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +28,11 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import io.prometheus.client.servlet.jakarta.exporter.MetricsServlet; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.InvocationCallback; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -34,10 +40,6 @@ import java.util.Properties; import java.util.TreeMap; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.InvocationCallback; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import lombok.Getter; import org.junit.AfterClass; import org.junit.Before; @@ -63,8 +65,6 @@ public class HttpClientTest { private static final String FALSE_STRING = "false"; private static final String ALPHA123 = "alpha123"; private static final String PUT_HELLO = "PUT:hello:{myParameter=myValue}"; - private static final String DOT_GSON = "." + "GSON"; - private static final String DOT_JACKSON = "." + "JACKSON"; private static final String DOT_PDP = "." + "PDP"; private static final String DOT_PAP = "." + "PAP"; @@ -121,13 +121,11 @@ public class HttpClientTest { /* echo server - https + basic auth */ final HttpServletServer echoServerAuth = HttpServletServerFactoryInstance.getServerFactory() - .build("echo", true, LOCALHOST, 6667, "/", false, true); + .build("echo", true, LOCALHOST, 6667, false, "/", false, true); echoServerAuth.setBasicAuthentication("x", "y", null); echoServerAuth.addServletPackage("/*", HttpClientTest.class.getPackage().getName()); echoServerAuth.addFilterClass("/*", TestFilter.class.getName()); echoServerAuth.addFilterClass("/*", TestAuthorizationFilter.class.getName()); - echoServerAuth.addFilterClass("/*", TestAafAuthFilter.class.getName()); - echoServerAuth.addFilterClass("/*", TestAafGranularAuthFilter.class.getName()); echoServerAuth.waitedStart(5000); if (!NetworkUtil.isTcpPortOpen(LOCALHOST, echoServerAuth.getPort(), 5, 10000L)) { @@ -143,7 +141,6 @@ public class HttpClientTest { HttpClientFactoryInstance.getClientFactory().destroy(); MyGsonProvider.resetSome(); - MyJacksonProvider.resetSome(); } /** @@ -351,26 +348,6 @@ public class HttpClientTest { } @Test - public void testHttpPutAuthClient_JacksonProvider() throws Exception { - final HttpClient client = HttpClientFactoryInstance.getClientFactory() - .build(BusTopicParams.builder().clientName(TEST_HTTP_AUTH_CLIENT).useHttps(true) - .allowSelfSignedCerts(true).hostname(LOCALHOST).port(6667).basePath(JUNIT_ECHO) - .userName("x").password("y").managed(true) - .serializationProvider(MyJacksonProvider.class.getName()).build()); - - Entity<MyEntity> entity = Entity.entity(new MyEntity(MY_VALUE), MediaType.APPLICATION_JSON); - final Response response = client.put(HELLO, entity, Collections.emptyMap()); - final String body = HttpClient.getBody(response, String.class); - - assertEquals(200, response.getStatus()); - assertEquals(PUT_HELLO, body); - - assertTrue(MyJacksonProvider.hasWrittenSome()); - - assertFalse(MyGsonProvider.hasWrittenSome()); - } - - @Test public void testHttpPutAuthClient_GsonProvider() throws Exception { final HttpClient client = HttpClientFactoryInstance.getClientFactory() .build(BusTopicParams.builder().clientName(TEST_HTTP_AUTH_CLIENT).useHttps(true) @@ -386,8 +363,6 @@ public class HttpClientTest { assertEquals(PUT_HELLO, body); assertTrue(MyGsonProvider.hasWrittenSome()); - - assertFalse(MyJacksonProvider.hasWrittenSome()); } @Test @@ -402,7 +377,12 @@ public class HttpClientTest { public void testHttpAuthClientProps() throws Exception { final Properties httpProperties = new Properties(); + /* PAP and PDP services */ + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES, "PAP,PDP"); + + /* PAP server service configuration */ + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP @@ -419,8 +399,15 @@ public class HttpClientTest { PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP + PolicyEndPointProperties.PROPERTY_HTTP_FILTER_CLASSES_SUFFIX, TestFilter.class.getName()); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PAP + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP + + PolicyEndPointProperties.PROPERTY_HTTP_SERVLET_CLASS_SUFFIX, MetricsServlet.class.getName()); + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PAP + + PolicyEndPointProperties.PROPERTY_HTTP_SERVLET_URIPATH_SUFFIX, + "/pap/test/random/metrics"); + + /* PDP server service configuration */ httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); @@ -434,10 +421,19 @@ public class HttpClientTest { PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_REST_CLASSES_SUFFIX, RestMockHealthCheck.class.getName()); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PAP + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PDP + + PolicyEndPointProperties.PROPERTY_HTTP_SWAGGER_SUFFIX, "true"); + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + DOT_PDP + + PolicyEndPointProperties.PROPERTY_HTTP_PROMETHEUS_SUFFIX, "true"); + + /* PDP and PAP client services */ httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES, "PAP,PDP"); + + /* PAP client service configuration */ + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PAP + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PAP @@ -453,13 +449,13 @@ public class HttpClientTest { httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PAP + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); + /* PDP client service configuration */ + httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, "7778"); httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PDP - + PolicyEndPointProperties.PROPERTY_HTTP_URL_SUFFIX, "pdp"); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_HTTPS_SUFFIX, FALSE_STRING); httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_PDP + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_USERNAME_SUFFIX, "testpdp"); @@ -485,16 +481,28 @@ public class HttpClientTest { assertEquals(200, response.getStatus()); final HttpClient clientPdp = HttpClientFactoryInstance.getClientFactory().get("PDP"); - response = clientPdp.get("test"); + + response = clientPdp.get("pdp/test"); assertEquals(500, response.getStatus()); - assertFalse(MyJacksonProvider.hasWrittenSome()); + response = clientPdp.get("metrics"); + assertEquals(200, response.getStatus()); + + response = clientPdp.get("openapi.json"); + assertEquals(200, response.getStatus()); + assertFalse(MyGsonProvider.hasWrittenSome()); // try with empty path response = clientPap.get(""); assertEquals(200, response.getStatus()); + response = clientPap.get("random/metrics"); + assertEquals(200, response.getStatus()); + + response = clientPap.get("metrics"); + assertEquals(404, response.getStatus()); + // try it asynchronously, too MyCallback callback = new MyCallback(); response = clientPap.get(callback, null).get(); @@ -508,75 +516,6 @@ public class HttpClientTest { assertEquals(200, response.getStatus()); } - @Test - public void testHttpAuthClientProps_MixedProviders() throws Exception { - final Properties httpProperties = new Properties(); - - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES, "GSON,JACKSON"); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, "6666"); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_HTTP_URL_SUFFIX, JUNIT_ECHO); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_HTTP_HTTPS_SUFFIX, FALSE_STRING); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); - httpProperties.setProperty( - PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_GSON - + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, - MyGsonProvider.class.getName()); - - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_HTTP_HOST_SUFFIX, LOCALHOST); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, "6666"); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_HTTP_URL_SUFFIX, JUNIT_ECHO); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_HTTP_HTTPS_SUFFIX, FALSE_STRING); - httpProperties.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); - httpProperties.setProperty( - PolicyEndPointProperties.PROPERTY_HTTP_CLIENT_SERVICES + DOT_JACKSON - + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, - MyJacksonProvider.class.getName()); - - final List<HttpClient> clients = HttpClientFactoryInstance.getClientFactory().build(httpProperties); - assertEquals(2, clients.size()); - - Entity<MyEntity> entity = Entity.entity(new MyEntity(MY_VALUE), MediaType.APPLICATION_JSON); - - // use gson client - MyGsonProvider.resetSome(); - MyJacksonProvider.resetSome(); - HttpClient client = HttpClientFactoryInstance.getClientFactory().get("GSON"); - - Response response = client.put(HELLO, entity, Collections.emptyMap()); - String body = HttpClient.getBody(response, String.class); - - assertEquals(200, response.getStatus()); - assertEquals(PUT_HELLO, body); - - assertTrue(MyGsonProvider.hasWrittenSome()); - assertFalse(MyJacksonProvider.hasWrittenSome()); - - // use jackson client - MyGsonProvider.resetSome(); - MyJacksonProvider.resetSome(); - client = HttpClientFactoryInstance.getClientFactory().get("JACKSON"); - - response = client.put(HELLO, entity, Collections.emptyMap()); - body = HttpClient.getBody(response, String.class); - - assertEquals(200, response.getStatus()); - assertEquals(PUT_HELLO, body); - - assertTrue(MyJacksonProvider.hasWrittenSome()); - assertFalse(MyGsonProvider.hasWrittenSome()); - } - private HttpClient getAuthHttpClient() throws HttpClientConfigException { return HttpClientFactoryInstance.getClientFactory() .build(BusTopicParams.builder().clientName(TEST_HTTP_AUTH_CLIENT).useHttps(true) @@ -593,7 +532,7 @@ public class HttpClientTest { } - class MyEntity { + static class MyEntity { private String myParameter; @@ -611,7 +550,7 @@ public class HttpClientTest { } - class MyCallback implements InvocationCallback<Response> { + static class MyCallback implements InvocationCallback<Response> { @Getter private Response response; |