summaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/test/java/com')
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java82
-rw-r--r--container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java34
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