aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java')
-rw-r--r--container-core/src/test/java/com/yahoo/processing/handler/ProcessingHandlerTestCase.java295
1 files changed, 146 insertions, 149 deletions
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 baed2ccdcc8..70bae6c97b1 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
@@ -21,9 +21,9 @@ import com.yahoo.processing.rendering.Renderer;
import com.yahoo.processing.request.ErrorMessage;
import com.yahoo.processing.response.Data;
import com.yahoo.processing.test.ProcessorLibrary;
-import org.junit.After;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
@@ -39,12 +39,7 @@ 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.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.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
/**
* Tests processing handler scenarios end to end.
@@ -74,13 +69,13 @@ public class ProcessingHandlerTestCase {
new Chain<>("log-value",
new ProcessorLibrary.LogValueAdder(LOG_KEY, LOG_VALUE));
- @After
+ @AfterEach
public void shutDown() {
driver.close();
}
@Test
- public void processing_handler_stores_trace_log_values_in_the_access_log_entry() {
+ 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();
@@ -95,7 +90,7 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testProcessingHandlerResolvesChains() {
+ void testProcessingHandlerResolvesChains() {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(defaultChain);
chains.add(simpleChain);
@@ -106,16 +101,16 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testProcessingHandlerPropagatesRequestParametersAndContext() {
+ void testProcessingHandlerPropagatesRequestParametersAndContext() {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(new Chain<>("default", new RequestPropertyTracer()));
driver = new ProcessingTestDriver(chains);
- assertTrue("JDisc request context is propagated to properties()",
- driver.sendRequest("http://localhost/?chain=default&tracelevel=4").readAll().contains("context.contextVariable: '37'"));
+ assertTrue(driver.sendRequest("http://localhost/?chain=default&tracelevel=4").readAll().contains("context.contextVariable: '37'"),
+ "JDisc request context is propagated to properties()");
}
@Test
- public void testProcessingHandlerOutputsTrace() {
+ void testProcessingHandlerOutputsTrace() {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(defaultChain);
driver = new ProcessingTestDriver(chains);
@@ -128,28 +123,28 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testProcessingHandlerTransfersErrorsToHttpStatusCodesNoData() {
+ void testProcessingHandlerTransfersErrorsToHttpStatusCodesNoData() {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(simpleChain);
- chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.ErrorAdder(new ErrorMessage(301,"Message"))));
- chains.add(new Chain<>("unauthorized", new ProcessorLibrary.ErrorAdder(new ErrorMessage(401,"Message"))));
- chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code,"Message"))));
- chains.add(new Chain<>("forbidden", new ProcessorLibrary.ErrorAdder(new ErrorMessage(403,"Message"))));
- chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message"))));
- chains.add(new Chain<>("not_found", new ProcessorLibrary.ErrorAdder(new ErrorMessage(404,"Message"))));
- chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code,"Message"))));
- chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.ErrorAdder(new ErrorMessage(429,"Message"))));
- chains.add(new Chain<>("bad_request", new ProcessorLibrary.ErrorAdder(new ErrorMessage(400,"Message"))));
- chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code,"Message"))));
- chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.ErrorAdder(new ErrorMessage(500,"Message"))));
- chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code,"Message"))));
- chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.ErrorAdder(new ErrorMessage(503,"Message"))));
- chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code,"Message"))));
- chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.ErrorAdder(new ErrorMessage(504,"Message"))));
- chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code,"Message"))));
- chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.ErrorAdder(new ErrorMessage(502,"Message"))));
- chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code,"Message"))));
- chains.add(new Chain<>("unknown_code", new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567,"Message"))));
+ chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.ErrorAdder(new ErrorMessage(301, "Message"))));
+ chains.add(new Chain<>("unauthorized", new ProcessorLibrary.ErrorAdder(new ErrorMessage(401, "Message"))));
+ chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code, "Message"))));
+ chains.add(new Chain<>("forbidden", new ProcessorLibrary.ErrorAdder(new ErrorMessage(403, "Message"))));
+ chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message"))));
+ chains.add(new Chain<>("not_found", new ProcessorLibrary.ErrorAdder(new ErrorMessage(404, "Message"))));
+ chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code, "Message"))));
+ chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.ErrorAdder(new ErrorMessage(429, "Message"))));
+ chains.add(new Chain<>("bad_request", new ProcessorLibrary.ErrorAdder(new ErrorMessage(400, "Message"))));
+ chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code, "Message"))));
+ chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.ErrorAdder(new ErrorMessage(500, "Message"))));
+ chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code, "Message"))));
+ chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.ErrorAdder(new ErrorMessage(503, "Message"))));
+ chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code, "Message"))));
+ chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.ErrorAdder(new ErrorMessage(504, "Message"))));
+ chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code, "Message"))));
+ chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.ErrorAdder(new ErrorMessage(502, "Message"))));
+ chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code, "Message"))));
+ chains.add(new Chain<>("unknown_code", new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567, "Message"))));
driver = new ProcessingTestDriver(chains);
assertEqualStatus(200, "http://localhost/?chain=simple");
assertEqualStatus(301, "http://localhost/?chain=moved_permanently");
@@ -174,28 +169,28 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testProcessingHandlerTransfersErrorsToHttpStatusCodesWithData() {
+ void testProcessingHandlerTransfersErrorsToHttpStatusCodesWithData() {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(simpleChain);
- chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(301,"Message"))));
- chains.add(new Chain<>("unauthorized", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(401,"Message"))));
- chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code,"Message"))));
- chains.add(new Chain<>("forbidden", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(403,"Message"))));
- chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message"))));
- chains.add(new Chain<>("not_found", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(404,"Message"))));
- chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code,"Message"))));
- chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(429,"Message"))));
- chains.add(new Chain<>("bad_request", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(400,"Message"))));
- chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code,"Message"))));
- chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(500,"Message"))));
- chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code,"Message"))));
- chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(503,"Message"))));
- chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code,"Message"))));
- chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(504,"Message"))));
- chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code,"Message"))));
- chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(502,"Message"))));
- chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code,"Message"))));
- chains.add(new Chain<>("unknown_code", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567,"Message"))));
+ chains.add(new Chain<>("moved_permanently", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(301, "Message"))));
+ chains.add(new Chain<>("unauthorized", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(401, "Message"))));
+ chains.add(new Chain<>("unauthorized_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.UNAUTHORIZED.code, "Message"))));
+ chains.add(new Chain<>("forbidden", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(403, "Message"))));
+ chains.add(new Chain<>("forbidden_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message"))));
+ chains.add(new Chain<>("not_found", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(404, "Message"))));
+ chains.add(new Chain<>("not_found_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NOT_FOUND.code, "Message"))));
+ chains.add(new Chain<>("too_many_requests", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(429, "Message"))));
+ chains.add(new Chain<>("bad_request", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(400, "Message"))));
+ chains.add(new Chain<>("bad_request_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BAD_REQUEST.code, "Message"))));
+ chains.add(new Chain<>("internal_server_error", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(500, "Message"))));
+ chains.add(new Chain<>("internal_server_error_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.INTERNAL_SERVER_ERROR.code, "Message"))));
+ chains.add(new Chain<>("service_unavailable", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(503, "Message"))));
+ chains.add(new Chain<>("service_unavailable_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.NO_BACKENDS_IN_SERVICE.code, "Message"))));
+ chains.add(new Chain<>("gateway_timeout", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(504, "Message"))));
+ chains.add(new Chain<>("gateway_timeout_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.TIMEOUT.code, "Message"))));
+ chains.add(new Chain<>("bad_gateway", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(502, "Message"))));
+ chains.add(new Chain<>("bad_gateway_mapped", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.BACKEND_COMMUNICATION_ERROR.code, "Message"))));
+ chains.add(new Chain<>("unknown_code", new ProcessorLibrary.StringDataAdder("Hello"), new ProcessorLibrary.ErrorAdder(new ErrorMessage(1234567, "Message"))));
driver = new ProcessingTestDriver(chains);
assertEqualStatus(200, "http://localhost/?chain=simple");
assertEqualStatus(301, "http://localhost/?chain=moved_permanently");
@@ -220,27 +215,27 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testProcessorSetsResponseHeaders() throws InterruptedException {
+ void testProcessorSetsResponseHeaders() throws InterruptedException {
ProcessingTestDriver.MockResponseHandler responseHandler = null;
try {
- Map<String,List<String>> responseHeaders = new HashMap<>();
+ Map<String, List<String>> responseHeaders = new HashMap<>();
responseHeaders.put("foo", List.of("fooValue"));
responseHeaders.put("bar", List.of("barValue", "bazValue"));
- Map<String,List<String>> otherResponseHeaders = new HashMap<>();
+ Map<String, List<String>> otherResponseHeaders = new HashMap<>();
otherResponseHeaders.put("foo", List.of("fooValue2"));
otherResponseHeaders.put("bax", List.of("baxValue"));
List<Chain<Processor>> chains = new ArrayList<>();
- chains.add(new Chain<>("default",new ResponseHeaderSetter(responseHeaders),
- new ResponseHeaderSetter(otherResponseHeaders)));
+ chains.add(new Chain<>("default", new ResponseHeaderSetter(responseHeaders),
+ new ResponseHeaderSetter(otherResponseHeaders)));
driver = new ProcessingTestDriver(chains);
responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse();
Response response = responseHandler.getResponse();
- assertEquals("[fooValue2, fooValue]",response.headers().get("foo").toString());
+ assertEquals("[fooValue2, fooValue]", response.headers().get("foo").toString());
assertEquals("[barValue, bazValue]", response.headers().get("bar").toString());
assertEquals("[baxValue]", response.headers().get("bax").toString());
- assertEquals("ResponseHeaders are not rendered", "{\"datalist\":[]}", responseHandler.read());
+ assertEquals("{\"datalist\":[]}", responseHandler.read(), "ResponseHeaders are not rendered");
}
finally {
if (responseHandler != null)
@@ -249,7 +244,7 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testResponseDataStatus() throws InterruptedException {
+ void testResponseDataStatus() throws InterruptedException {
ProcessingTestDriver.MockResponseHandler responseHandler = null;
try {
List<Chain<Processor>> chains = new ArrayList<>();
@@ -258,7 +253,7 @@ public class ProcessingHandlerTestCase {
responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse();
Response response = responseHandler.getResponse();
assertEquals(429, response.getStatus());
- assertEquals("ResponseHeaders are not rendered", "{\"datalist\":[]}", responseHandler.read());
+ assertEquals("{\"datalist\":[]}", responseHandler.read(), "ResponseHeaders are not rendered");
}
finally {
if (responseHandler != null)
@@ -268,13 +263,13 @@ public class ProcessingHandlerTestCase {
/** Tests that the ResponseStatus takes precedence over errors */
@Test
- public void testResponseDataStatusOverridesErrors() throws InterruptedException {
+ void testResponseDataStatusOverridesErrors() throws InterruptedException {
ProcessingTestDriver.MockResponseHandler responseHandler = null;
try {
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(new Chain<>("default", new ResponseStatusSetter(200),
- new ProcessorLibrary.StringDataAdder("Hello"),
- new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code,"Message"))));
+ new ProcessorLibrary.StringDataAdder("Hello"),
+ new ProcessorLibrary.ErrorAdder(new ErrorMessage(Error.FORBIDDEN.code, "Message"))));
driver = new ProcessingTestDriver(chains);
responseHandler = driver.sendRequest("http://localhost/?chain=default").awaitResponse();
Response response = responseHandler.getResponse();
@@ -304,14 +299,14 @@ public class ProcessingHandlerTestCase {
@SuppressWarnings("unchecked")
@Test
- public void testProcessingHandlerSupportsAsyncRendering() {
+ void testProcessingHandlerSupportsAsyncRendering() {
// Set up
ProcessorLibrary.FutureDataSource futureDataSource = new ProcessorLibrary.FutureDataSource();
Chain<Processor> asyncCompletionChain = new Chain<>("asyncCompletion", new ProcessorLibrary.DataCounter("async"));
Chain<Processor> chain =
new Chain<>("federation", new ProcessorLibrary.DataCounter("sync"),
- new ProcessorLibrary.Federator(new Chain<Processor>(new ProcessorLibrary.DataSource()),
- new Chain<>(new ProcessorLibrary.AsyncDataProcessingInitiator(asyncCompletionChain),futureDataSource)));
+ new ProcessorLibrary.Federator(new Chain<Processor>(new ProcessorLibrary.DataSource()),
+ new Chain<>(new ProcessorLibrary.AsyncDataProcessingInitiator(asyncCompletionChain), futureDataSource)));
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(chain);
driver = new ProcessingTestDriver(chains);
@@ -320,46 +315,46 @@ public class ProcessingHandlerTestCase {
String synchronousResponse = responseHandler.read();
assertEquals(
"{\"datalist\":[" +
- "{\"datalist\":[" +
- "{\"data\":\"first.null\"}," +
- "{\"data\":\"second.null\"}," +
- "{\"data\":\"third.null\"}" +
- "]}",
+ "{\"datalist\":[" +
+ "{\"data\":\"first.null\"}," +
+ "{\"data\":\"second.null\"}," +
+ "{\"data\":\"third.null\"}" +
+ "]}",
synchronousResponse);
- assertEquals("No more data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No more data is available at this point");
// Now, complete async data
futureDataSource.incomingData.get(0).add(new ProcessorLibrary.StringData(null, "d1"));
assertEquals(
- "," +
- "{\"datalist\":[" +
- "{\"data\":\"d1\"}",
- responseHandler.read());
+ "," +
+ "{\"datalist\":[" +
+ "{\"data\":\"d1\"}",
+ responseHandler.read());
futureDataSource.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d2"));
// ... which leads to the rest of the response becoming available
assertEquals(
- "," +
- "{\"data\":\"d2\"}," +
- "{\"data\":\"[async] Data count: 2\"}" +
- "]}",
+ "," +
+ "{\"data\":\"d2\"}," +
+ "{\"data\":\"[async] Data count: 2\"}" +
+ "]}",
responseHandler.read());
assertEquals(",{\"data\":\"[sync] Data count: 3\"}" + // Async items not counted as they arrive after chain completion
- "]}",
- responseHandler.read());
- assertNull("Transmission completed", responseHandler.read());
+ "]}",
+ responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@SuppressWarnings("unchecked")
@Test
- public void testProcessingHandlerSupportsAsyncUnorderedRendering() {
+ void testProcessingHandlerSupportsAsyncUnorderedRendering() {
// Set up
ProcessorLibrary.FutureDataSource futureDataSource1 = new ProcessorLibrary.FutureDataSource();
ProcessorLibrary.FutureDataSource futureDataSource2 = new ProcessorLibrary.FutureDataSource();
Chain<Processor> chain =
new Chain<>("federation",
- new ProcessorLibrary.Federator(false,new Chain<Processor>(futureDataSource1),
- new Chain<Processor>(futureDataSource2)));
+ new ProcessorLibrary.Federator(false, new Chain<Processor>(futureDataSource1),
+ new Chain<Processor>(futureDataSource2)));
List<Chain<Processor>> chains = new ArrayList<>();
chains.add(chain);
driver = new ProcessingTestDriver(chains);
@@ -368,69 +363,69 @@ public class ProcessingHandlerTestCase {
assertEquals(
"{\"datalist\":[",
responseHandler.read());
- assertEquals("No more data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No more data is available at this point");
// Complete second async data first
futureDataSource2.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d2"));
assertEquals(
- "{\"datalist\":[" +
- "{\"data\":\"d2\"}"+
- "]}",
- responseHandler.read());
+ "{\"datalist\":[" +
+ "{\"data\":\"d2\"}" +
+ "]}",
+ responseHandler.read());
// Now complete first async data (which is therefore rendered last)
futureDataSource1.incomingData.get(0).addLast(new ProcessorLibrary.StringData(null, "d1"));
assertEquals(
- "," +
- "{\"datalist\":[" +
- "{\"data\":\"d1\"}"+
- "]}",
- responseHandler.read());
+ "," +
+ "{\"datalist\":[" +
+ "{\"data\":\"d1\"}" +
+ "]}",
+ responseHandler.read());
assertEquals(
- "]}",
- responseHandler.read());
+ "]}",
+ responseHandler.read());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@SuppressWarnings("unchecked")
@Test
- public void testAsyncOnlyRendering() throws Exception {
+ void testAsyncOnlyRendering() throws Exception {
// Set up
ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource();
Chain<Processor> chain = new Chain<>("main", List.of(futureDataSource));
driver = new ProcessingTestDriver(chain);
ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1"));
assertEquals(
- "{\"datalist\":[" +
- "{\"data\":\"d1\"}",
- responseHandler.read());
+ "{\"datalist\":[" +
+ "{\"data\":\"d1\"}",
+ responseHandler.read());
futureDataSource.incomingData.get().addLast(new ProcessorLibrary.StringData(null, "d2"));
assertEquals(
"," +
- "{\"data\":\"d2\"}" +
- "]}",
+ "{\"data\":\"d2\"}" +
+ "]}",
responseHandler.read());
assertEquals(200, responseHandler.getStatus());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@SuppressWarnings("unchecked")
@Test
- public void testAsyncRenderingWithClientClose() throws Exception {
+ void testAsyncRenderingWithClientClose() throws Exception {
// Set up
ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource();
Chain<Processor> chain = new Chain<>("main", List.of(futureDataSource));
driver = new ProcessingTestDriver(chain);
ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1"));
assertEquals(
@@ -443,24 +438,24 @@ public class ProcessingHandlerTestCase {
assertNull(responseHandler.read());
assertEquals(200, responseHandler.getStatus());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@SuppressWarnings("unchecked")
@Test
- public void testAsyncOnlyRenderingWithAsyncPostData() throws Exception {
+ void testAsyncOnlyRenderingWithAsyncPostData() throws Exception {
// Set up
ProcessorLibrary.ListenableFutureDataSource futureDataSource = new ProcessorLibrary.ListenableFutureDataSource();
PostReader postReader = new PostReader();
Chain<Processor> chain = new Chain<>("main",
- new ProcessorLibrary.AsyncDataProcessingInitiator(new Chain<>(postReader)),
- futureDataSource);
+ new ProcessorLibrary.AsyncDataProcessingInitiator(new Chain<>(postReader)),
+ futureDataSource);
driver = new ProcessingTestDriver(chain);
RequestHandlerTestDriver.MockResponseHandler responseHandler =
driver.sendRequest("http://localhost/?chain=main", HttpRequest.Method.POST, "Hello, world!");
- assertFalse("Post data is read later, on async completion", postReader.bodyDataFuture.isDone());
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertFalse(postReader.bodyDataFuture.isDone(), "Post data is read later, on async completion");
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
futureDataSource.incomingData.get().add(new ProcessorLibrary.StringData(null, "d1"));
assertEquals(
@@ -476,10 +471,10 @@ public class ProcessingHandlerTestCase {
"]}",
responseHandler.read()
);
- assertEquals("Data is completed, so post data is read", "Hello, world!", postReader.bodyDataFuture.get().trim());
+ assertEquals("Hello, world!", postReader.bodyDataFuture.get().trim(), "Data is completed, so post data is read");
assertEquals(200, responseHandler.getStatus());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
private static class PostReader extends Processor {
@@ -506,8 +501,8 @@ public class ProcessingHandlerTestCase {
@SuppressWarnings("unchecked")
@Test
- public void testStatusAndHeadersCanBeSetAsynchronously() throws Exception {
- Map<String,List<String>> responseHeaders = new HashMap<>();
+ void testStatusAndHeadersCanBeSetAsynchronously() throws Exception {
+ Map<String, List<String>> responseHeaders = new HashMap<>();
responseHeaders.put("foo", List.of("fooValue"));
responseHeaders.put("bar", List.of("barValue", "bazValue"));
@@ -517,7 +512,7 @@ public class ProcessingHandlerTestCase {
driver = new ProcessingTestDriver(chain);
ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
com.yahoo.processing.Request request = futureDataSource.incomingData.get().getOwner().request();
futureDataSource.incomingData.get().addLast(new ProcessorLibrary.StringData(request, "d1"));
@@ -527,12 +522,12 @@ public class ProcessingHandlerTestCase {
assertEquals(500, responseHandler.getStatus());
assertEquals("[fooValue]", responseHandler.getResponse().headers().get("foo").toString());
assertEquals("[barValue, bazValue]", responseHandler.getResponse().headers().get("bar").toString());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@SuppressWarnings("unchecked")
@Test
- public void testAsyncRenderingDoesNotHoldThreads() {
+ void testAsyncRenderingDoesNotHoldThreads() {
// Set up
ProcessorLibrary.FutureDataSource futureDataSource = new ProcessorLibrary.FutureDataSource();
// Add some sync data as well to cause rendering to start before async data is added.
@@ -545,11 +540,11 @@ public class ProcessingHandlerTestCase {
ProcessingTestDriver.MockResponseHandler[] responseHandler = new ProcessingTestDriver.MockResponseHandler[requestCount];
for (int i = 0; i < requestCount; i++) {
responseHandler[i] = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("Sync data is available",
- "{\"datalist\":[{\"datalist\":[{\"data\":\"first.null\"},{\"data\":\"second.null\"},{\"data\":\"third.null\"}]}",
- responseHandler[i].read());
+ assertEquals("{\"datalist\":[{\"datalist\":[{\"data\":\"first.null\"},{\"data\":\"second.null\"},{\"data\":\"third.null\"}]}",
+ responseHandler[i].read(),
+ "Sync data is available");
}
- assertEquals("All requests was processed", requestCount, futureDataSource.incomingData.size());
+ assertEquals(requestCount, futureDataSource.incomingData.size(), "All requests was processed");
// Complete all
for (int i = 0; i < requestCount; i++) {
@@ -558,13 +553,13 @@ public class ProcessingHandlerTestCase {
futureDataSource.incomingData.get(i).addLast(new ProcessorLibrary.StringData(null, "d2"));
assertEquals(",{\"data\":\"d2\"}]}", responseHandler[i].read());
assertEquals("]}", responseHandler[i].read());
- assertNull("Transmission completed", responseHandler[i].read());
+ assertNull(responseHandler[i].read(), "Transmission completed");
}
}
@SuppressWarnings("unchecked")
@Test
- public void testStreamedRendering() throws Exception {
+ void testStreamedRendering() throws Exception {
// Set up
Chain<Processor> streamChain = new Chain<>(new StreamProcessor());
@@ -593,26 +588,27 @@ public class ProcessingHandlerTestCase {
",{\"data\":\"map data: {streamProcessed=true}\"}]}",
responseHandler.read());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
@Test
- public void testEagerStreamedRenderingOnFreeze() {
+ void testEagerStreamedRenderingOnFreeze() {
FreezingDataSource source = new FreezingDataSource();
Chain<Processor> mainChain = new Chain<>("main", source);
driver = new ProcessingTestDriver(mainChain);
ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
source.freeze.set(true);
assertEquals("{\"datalist\":[{\"data\":\"d1\"}", responseHandler.read());
source.addLastData.set(true); // signal completion
assertEquals(",{\"data\":\"d2\"}]}", responseHandler.read());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
+ // TODO
@Test
- @Ignore // TODO
- public void testNestedEagerStreamedRenderingOnFreeze() {
+ @Disabled
+ void testNestedEagerStreamedRenderingOnFreeze() {
try {
FreezingDataSource source1 = new FreezingDataSource("s1");
FreezingDataSource source2 = new FreezingDataSource("s2");
@@ -625,16 +621,15 @@ public class ProcessingHandlerTestCase {
new Chain<Processor>(source3)));
driver = new ProcessingTestDriver(mainChain);
ProcessingTestDriver.MockResponseHandler responseHandler = driver.sendRequest("http://localhost/?chain=main");
- assertEquals("No data is available at this point", 0, responseHandler.available());
+ assertEquals(0, responseHandler.available(), "No data is available at this point");
source1.freeze.set(true);
- assertEquals("Received because the parent list and source1 list is frozen",
- "{\"datalist\":[{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read());
+ assertEquals("{\"datalist\":[{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read(), "Received because the parent list and source1 list is frozen");
source2.addLastData.set(true); // No effect as we are working on source1, which is not completed yet
assertEquals("{\"datalist\":[{\"data\":\"s1d1\"}", responseHandler.read());
source1.addLastData.set(true); // Make source 1 and 2 available
assertEquals(",{\"data\":\"d2\"}]}", responseHandler.read());
- assertNull("Transmission completed", responseHandler.read());
+ assertNull(responseHandler.read(), "Transmission completed");
}
catch (Throwable t) {
t.printStackTrace();
@@ -642,14 +637,16 @@ public class ProcessingHandlerTestCase {
}
}
- @Test(expected = IllegalArgumentException.class)
- public void testRetrievingNonExistingRendererThrows() {
- driver = new ProcessingTestDriver(List.of());
- driver.processingHandler().getRendererCopy(ComponentSpecification.fromString("non-existent"));
+ @Test
+ void testRetrievingNonExistingRendererThrows() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ driver = new ProcessingTestDriver(List.of());
+ driver.processingHandler().getRendererCopy(ComponentSpecification.fromString("non-existent"));
+ });
}
@Test
- public void testDefaultRendererIsAddedToRegistryWhenNoneIsGivenByUser() {
+ void testDefaultRendererIsAddedToRegistryWhenNoneIsGivenByUser() {
String defaultId = AbstractProcessingHandler.DEFAULT_RENDERER_ID;
driver = new ProcessingTestDriver(List.of());
@@ -659,7 +656,7 @@ public class ProcessingHandlerTestCase {
}
@Test
- public void testUserSpecifiedDefaultRendererIsNotReplacedInRegistry() {
+ void testUserSpecifiedDefaultRendererIsNotReplacedInRegistry() {
String defaultId = AbstractProcessingHandler.DEFAULT_RENDERER_ID;
Renderer myDefaultRenderer = new ProcessingRenderer();
ComponentRegistry<Renderer> renderers = new ComponentRegistry<>();