diff options
Diffstat (limited to 'container-core/src/test/java')
2 files changed, 38 insertions, 78 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java index 92fe347f7d1..734b3fa11af 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java @@ -1,51 +1,43 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import static org.junit.Assert.*; - -import java.io.IOException; -import java.io.OutputStream; -import java.net.InetSocketAddress; -import java.net.URISyntaxException; -import java.nio.ByteBuffer; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.Executor; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; - import com.google.inject.Key; +import com.yahoo.component.provider.ComponentRegistry; +import com.yahoo.container.handler.Coverage; +import com.yahoo.container.handler.Timing; +import com.yahoo.container.logging.AccessLog; import com.yahoo.container.logging.HitCounts; +import com.yahoo.container.logging.RequestLogHandler; import com.yahoo.jdisc.Container; import com.yahoo.jdisc.References; import com.yahoo.jdisc.ResourceReference; +import com.yahoo.jdisc.handler.CompletionHandler; +import com.yahoo.jdisc.handler.ContentChannel; import com.yahoo.jdisc.handler.RequestHandler; +import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.service.CurrentContainer; -import java.net.URI; import org.junit.After; import org.junit.Before; -import org.junit.Test; -import com.yahoo.component.ComponentId; -import com.yahoo.component.provider.ComponentRegistry; -import com.yahoo.container.handler.Coverage; -import com.yahoo.container.handler.Timing; -import com.yahoo.container.logging.AccessLog; -import com.yahoo.container.logging.AccessLogEntry; -import com.yahoo.container.logging.AccessLogInterface; -import com.yahoo.jdisc.handler.BufferedContentChannel; -import com.yahoo.jdisc.handler.CompletionHandler; -import com.yahoo.jdisc.handler.ContentChannel; -import com.yahoo.jdisc.handler.ResponseHandler; +import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.ByteBuffer; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import static org.junit.Assert.fail; /** * Test contracts in LoggingRequestHandler. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ public class LoggingRequestHandlerTestCase { - StartTimePusher accessLogging; AccessLogTestHandler handler; ExecutorService executor; @@ -121,21 +113,9 @@ public class LoggingRequestHandlerTestCase { } - static final class StartTimePusher implements AccessLogInterface { - - public final ArrayBlockingQueue<Long> starts = new ArrayBlockingQueue<>(1); - - @Override - public void log(final AccessLogEntry accessLogEntry) { - starts.offer(Long.valueOf(accessLogEntry.getTimeStampMillis())); - } - } - @Before public void setUp() throws Exception { - accessLogging = new StartTimePusher(); - ComponentRegistry<AccessLogInterface> implementers = new ComponentRegistry<>(); - implementers.register(new ComponentId("nalle"), accessLogging); + ComponentRegistry<RequestLogHandler> implementers = new ComponentRegistry<>(); implementers.freeze(); executor = Executors.newCachedThreadPool(); handler = new AccessLogTestHandler(executor, new AccessLog(implementers)); @@ -143,31 +123,11 @@ public class LoggingRequestHandlerTestCase { @After public void tearDown() throws Exception { - accessLogging = null; handler = null; executor.shutdown(); executor = null; } - @Test - public final void checkStartIsNotZeroWithoutTimingInstance() throws InterruptedException { - Long startTime; - - MockResponseHandler responseHandler = new MockResponseHandler(); - com.yahoo.jdisc.http.HttpRequest request = createRequest(); - BufferedContentChannel requestContent = new BufferedContentChannel(); - requestContent.close(null); - handler.handleRequest(request, requestContent, responseHandler); - startTime = accessLogging.starts.poll(5, TimeUnit.MINUTES); - if (startTime == null) { - // test timed out, ignoring - } else { - assertFalse( - "Start time was 0, that should never happen after the first millisecond of 1970.", - startTime.longValue() == 0L); - } - } - public static com.yahoo.jdisc.http.HttpRequest createRequest() { return createRequest("http://localhost/search/?query=geewhiz"); } diff --git a/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java b/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java index 6498514c075..ae1076a4773 100644 --- a/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java @@ -8,9 +8,10 @@ import com.yahoo.component.chain.Chain; import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.container.logging.AccessLogEntry; -import com.yahoo.container.logging.AccessLogInterface; import com.yahoo.container.protect.Error; +import com.yahoo.jdisc.Request; import com.yahoo.jdisc.Response; +import com.yahoo.jdisc.handler.ContentChannel; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.processing.Processor; import com.yahoo.processing.execution.Execution; @@ -23,11 +24,11 @@ import com.yahoo.processing.test.ProcessorLibrary; import org.junit.After; import org.junit.Ignore; import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; import java.io.IOException; import java.io.InputStream; +import java.net.URI; +import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -37,17 +38,16 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; +import static com.yahoo.jdisc.http.server.jetty.AccessLoggingRequestHandler.CONTEXT_KEY_ACCESS_LOG_ENTRY; import static com.yahoo.processing.test.ProcessorLibrary.MapData; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.CoreMatchers.sameInstance; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.times; /** * Tests processing handler scenarios end to end. @@ -83,18 +83,18 @@ public class ProcessingHandlerTestCase { } @Test - public void processing_handler_stores_trace_log_values_in_the_access_log_entry() throws InterruptedException { - ArgumentCaptor<AccessLogEntry> accessLogEntryCaptor = ArgumentCaptor.forClass(AccessLogEntry.class); - AccessLogInterface accessLog = Mockito.mock(AccessLogInterface.class); - - driver = new ProcessingTestDriver(logValueChain, accessLog); - driver.sendRequest("http://localhost/?chain=log-value").readAll(); - - Mockito.verify(accessLog, times(1)).log(accessLogEntryCaptor.capture()); - - AccessLogEntry entry = accessLogEntryCaptor.getValue(); - assertNotNull(entry); - assertThat(entry.getKeyValues().get(LOG_KEY), is(Collections.singletonList(LOG_VALUE))); + public void processing_handler_stores_trace_log_values_in_the_access_log_entry() { + driver = new ProcessingTestDriver(logValueChain); + Request request = HttpRequest.newServerRequest(driver.jDiscDriver(), URI.create("http://localhost/?chain=log-value"), HttpRequest.Method.GET); + AccessLogEntry entry = new AccessLogEntry(); + request.context().put(CONTEXT_KEY_ACCESS_LOG_ENTRY, entry); + RequestHandlerTestDriver.MockResponseHandler responseHandler = new RequestHandlerTestDriver.MockResponseHandler(); + ContentChannel requestContent = request.connect(responseHandler); + requestContent.write(ByteBuffer.allocate(0), null); + requestContent.close(null); + request.release(); + responseHandler.readAll(); + assertThat(entry.getKeyValues().get(LOG_KEY), is(List.of(LOG_VALUE))); } @Test |