diff options
author | 2018-07-31 18:50:14 +0300 | |
---|---|---|
committer | 2018-08-05 12:15:49 +0000 | |
commit | 1b01b984901d5f69d5e421e459d62a6d03292444 (patch) | |
tree | 2e172e9c4ba8b19a286b89d93270629a5b768a89 /openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java | |
parent | d05277df22ddde79458cd853f98e7ab3a4d98913 (diff) |
Simplified logging code for servlets
Added and simplified unit tests, organized imports,
refactored for simplicity and reuse.
Change-Id: I4c4837447329528ae855f2e8d1a1f4b883617f33
Issue-ID: SDC-1580
Signed-off-by: vempo <vitaliy.emporopulo@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java | 244 |
1 files changed, 20 insertions, 224 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java index 4098809e42..aa77dea53a 100644 --- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java +++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/test/java/org/openecomp/sdc/logging/servlet/jaxrs/LoggingRequestFilterTest.java @@ -16,25 +16,18 @@ package org.openecomp.sdc.logging.servlet.jaxrs; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.anyString; -import static org.openecomp.sdc.logging.servlet.jaxrs.LoggingRequestFilter.START_TIME_KEY; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.logging.servlet.jaxrs.LoggingRequestFilter.LOGGING_TRACKER_KEY; -import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.container.ContainerRequestContext; -import org.easymock.EasyMock; -import org.junit.After; -import org.junit.Rule; +import javax.ws.rs.container.ResourceInfo; import org.junit.Test; -import org.junit.rules.TestName; -import org.junit.runner.RunWith; -import org.openecomp.sdc.logging.LoggingConstants; -import org.openecomp.sdc.logging.api.ContextData; -import org.openecomp.sdc.logging.api.LoggingContext; -import org.powermock.api.easymock.PowerMock; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.openecomp.sdc.logging.servlet.Tracker; /** @@ -43,222 +36,25 @@ import org.powermock.modules.junit4.PowerMockRunner; * @author evitaliy * @since 19 Mar 2018 */ -@RunWith(PowerMockRunner.class) -@PrepareForTest({LoggingContext.class, ContextData.class}) public class LoggingRequestFilterTest { - private static final String REQUEST_URI = "/test"; - private static final String REQUEST_METHOD = "GET"; - private static final String RANDOM_REQUEST_ID = UUID.randomUUID().toString(); - private static final String RANDOM_PARTNER_NAME = UUID.randomUUID().toString(); - - @Rule - public TestName testName = new TestName(); - - /** - * Verify all mocks after each test. - */ - @After - public void verifyMocks() { - - try { - PowerMock.verifyAll(); - } catch (AssertionError e) { - throw new AssertionError("Expectations failed in " + testName.getMethodName() + "()", e); - } - } - - @Test - public void serviceNamePopulatedWhenThereIsMatchingResource() { - - mockContextDataBuilder(null, null, LoggingRequestFilter.formatServiceName(REQUEST_METHOD, REQUEST_URI)); - mockLoggingContext(); - - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setHttpRequest(mockHttpRequest(true)); - - filter.filter(mockContainerRequestContext( - new RequestIdHeader(null), - new PartnerHeader(null))); - } - - @Test - public void serviceNameDoesNotIncludeHttpMethodWhenHttpMethodDisabled() { - - mockContextDataBuilder(null, null, REQUEST_URI); - mockLoggingContext(); - - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setHttpMethodInServiceName(false); - filter.setHttpRequest(mockHttpRequest(false)); - - filter.filter(mockContainerRequestContext( - new RequestIdHeader(null), - new PartnerHeader(null))); - } - - @Test - public void partnerNamePopulatedWhenPresentInDefaultHeader() { - - mockContextDataBuilder(null, RANDOM_PARTNER_NAME, - LoggingRequestFilter.formatServiceName(REQUEST_METHOD, REQUEST_URI)); - mockLoggingContext(); - - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setHttpRequest(mockHttpRequest(true)); - - filter.filter(mockContainerRequestContext( - new RequestIdHeader(null), - new PartnerHeader(RANDOM_PARTNER_NAME))); - } - - @Test - public void partnerNamePopulatedWhenPresentInCustomHeader() { - - final String partnerHeader = "x-partner-header"; - mockContextDataBuilder(null, RANDOM_PARTNER_NAME, - LoggingRequestFilter.formatServiceName(REQUEST_METHOD, REQUEST_URI)); - mockLoggingContext(); - - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setHttpRequest(mockHttpRequest(true)); - filter.setPartnerNameHeaders(partnerHeader); - - filter.filter(mockContainerRequestContext( - new RequestIdHeader(null), - new PartnerHeader(partnerHeader, RANDOM_PARTNER_NAME))); - } - @Test - public void requestIdPopulatedWhenPresentInDefaultHeader() { - - mockContextDataBuilder(RANDOM_REQUEST_ID, null, - LoggingRequestFilter.formatServiceName(REQUEST_METHOD, REQUEST_URI)); - mockLoggingContext(); - - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setHttpRequest(mockHttpRequest(true)); - - filter.filter(mockContainerRequestContext( - new RequestIdHeader(RANDOM_REQUEST_ID), - new PartnerHeader(null))); - } - - @Test - public void requestIdPopulatedWhenPresentInCustomHeader() { - - final String requestIdHeader = "x-request-id"; - mockContextDataBuilder(RANDOM_REQUEST_ID, null, - LoggingRequestFilter.formatServiceName(REQUEST_METHOD, REQUEST_URI)); - mockLoggingContext(); + public void trackerPushedOntoRequestContext() { - LoggingRequestFilter filter = new LoggingRequestFilter(); - filter.setRequestIdHeaders(requestIdHeader); - filter.setHttpRequest(mockHttpRequest(true)); + LoggingRequestFilter requestFilter = new LoggingRequestFilter(); + requestFilter.setHttpRequest(mock(HttpServletRequest.class)); - filter.filter(mockContainerRequestContext( - new RequestIdHeader(requestIdHeader, RANDOM_REQUEST_ID), - new PartnerHeader(null))); - } - - private HttpServletRequest mockHttpRequest(boolean includeMethod) { - - HttpServletRequest servletRequest = EasyMock.mock(HttpServletRequest.class); - EasyMock.expect(servletRequest.getRequestURI()).andReturn(REQUEST_URI); - - if (includeMethod) { - EasyMock.expect(servletRequest.getMethod()).andReturn(REQUEST_METHOD); - } - - EasyMock.replay(servletRequest); - return servletRequest; - } - - private ContainerRequestContext mockContainerRequestContext(Header... headers) { - - ContainerRequestContext requestContext = EasyMock.mock(ContainerRequestContext.class); - - for (Header h : headers) { - EasyMock.expect(requestContext.getHeaderString(h.key)).andReturn(h.value); - } - - requestContext.setProperty(EasyMock.eq(START_TIME_KEY), EasyMock.anyLong()); - EasyMock.expectLastCall(); - - EasyMock.replay(requestContext); - return requestContext; - } - - private void mockContextDataBuilder(String requestId, String partnerName, String serviceName) { - - ContextData.ContextDataBuilder mockBuilder = EasyMock.mock(ContextData.ContextDataBuilder.class); - - if (requestId != null) { - EasyMock.expect(mockBuilder.requestId(requestId)).andReturn(mockBuilder); - } else { - EasyMock.expect(mockBuilder.requestId(anyString())).andReturn(mockBuilder); - } - - EasyMock.expect(mockBuilder.serviceName(serviceName)).andReturn(mockBuilder); - - if (partnerName != null) { - EasyMock.expect(mockBuilder.partnerName(partnerName)).andReturn(mockBuilder); - } - - EasyMock.expect(mockBuilder.build()).andReturn(EasyMock.mock(ContextData.class)); - EasyMock.replay(mockBuilder); + ResourceInfo resourceInfo = mock(ResourceInfo.class); + when(resourceInfo.getResourceMethod()).thenReturn(Resource.class.getDeclaredMethods()[0]); + requestFilter.setResource(resourceInfo); - PowerMock.mockStatic(ContextData.class); - - ContextData.builder(); - PowerMock.expectLastCall().andReturn(mockBuilder); - - PowerMock.replay(ContextData.class); - } - - private void mockLoggingContext() { - - PowerMock.mockStatic(LoggingContext.class); - - LoggingContext.clear(); - EasyMock.expectLastCall(); - - LoggingContext.put(anyObject(ContextData.class)); - EasyMock.expectLastCall(); - - PowerMock.replay(LoggingContext.class); - } - - private abstract static class Header { - - private final String key; - private final String value; - - private Header(String key, String value) { - this.key = key; - this.value = value; - } + ContainerRequestContext requestContext = mock(ContainerRequestContext.class); + requestFilter.filter(requestContext); + verify(requestContext).setProperty(eq(LOGGING_TRACKER_KEY), any(Tracker.class)); } - private static class PartnerHeader extends Header { - - private PartnerHeader(String value) { - super(LoggingConstants.DEFAULT_PARTNER_NAME_HEADER, value); - } - - private PartnerHeader(String key, String value) { - super(key, value); - } - } - - private static class RequestIdHeader extends Header { - - private RequestIdHeader(String value) { - super(LoggingConstants.DEFAULT_REQUEST_ID_HEADER, value); - } - - private RequestIdHeader(String key, String value) { - super(key, value); - } + private interface Resource { + @SuppressWarnings("unused") + void method(); } }
\ No newline at end of file |