use of com.yahoo.jdisc.Response in project vespa by vespa-engine.
the class MbusServerTestCase method requireThatNonMbusResponseCausesEmptyReply.
@Test
public void requireThatNonMbusResponseCausesEmptyReply() {
MyRequestHandler requestHandler = MyRequestHandler.newInstance();
ServerTestDriver driver = ServerTestDriver.newInstance(requestHandler);
assertTrue(driver.sendMessage(new SimpleMessage("foo")));
assertNotNull(requestHandler.awaitRequest());
assertTrue(requestHandler.sendResponse(new Response(Response.Status.OK)));
assertNotNull(driver.awaitSuccess());
assertTrue(driver.close());
}
use of com.yahoo.jdisc.Response in project vespa by vespa-engine.
the class MbusServerTestCase method requireThatMbusRequestContentCallsCompletion.
@Test
public void requireThatMbusRequestContentCallsCompletion() throws InterruptedException {
MyRequestHandler requestHandler = MyRequestHandler.newInstance();
ServerTestDriver driver = ServerTestDriver.newInstance(requestHandler);
assertTrue(driver.sendMessage(new SimpleMessage("foo")));
assertNotNull(requestHandler.awaitRequest());
ContentChannel content = requestHandler.responseHandler.handleResponse(new Response(Response.Status.OK));
assertNotNull(content);
MyCompletion completion = new MyCompletion();
content.close(completion);
assertTrue(completion.completedLatch.await(60, TimeUnit.SECONDS));
assertNotNull(driver.awaitSuccess());
assertTrue(driver.close());
}
use of com.yahoo.jdisc.Response in project vespa by vespa-engine.
the class MbusServerTestCase method requireThatRequestIsMbus.
@Test
public void requireThatRequestIsMbus() {
MyRequestHandler requestHandler = MyRequestHandler.newInstance();
ServerTestDriver driver = ServerTestDriver.newInstance(requestHandler);
assertTrue(driver.sendMessage(new SimpleMessage("foo")));
Request request = requestHandler.awaitRequest();
assertTrue(request instanceof MbusRequest);
Message msg = ((MbusRequest) request).getMessage();
assertTrue(msg instanceof SimpleMessage);
assertEquals("foo", ((SimpleMessage) msg).getValue());
assertTrue(requestHandler.sendResponse(new Response(Response.Status.OK)));
assertNotNull(driver.awaitSuccess());
assertTrue(driver.close());
}
use of com.yahoo.jdisc.Response in project vespa by vespa-engine.
the class TimeoutManagerImplTestCase method requireThatTimeoutOccursAtExpectedTime.
@Test
public void requireThatTimeoutOccursAtExpectedTime() throws InterruptedException {
final Context ctx = new Context(MyRequestHandler.newInstance());
final MyResponseHandler responseHandler = MyResponseHandler.newInstance();
ctx.forwardToTime(100);
new RequestDispatch() {
@Override
protected Request newRequest() {
Request request = new Request(ctx.driver, URI.create(REQUEST_URI));
request.setTimeout(300, TimeUnit.MILLISECONDS);
return request;
}
@Override
public ContentChannel handleResponse(Response response) {
return responseHandler.handleResponse(response);
}
}.dispatch();
ctx.forwardToTime(300);
assertFalse(responseHandler.await(100, TimeUnit.MILLISECONDS));
ctx.forwardToTime(400);
assertTrue(responseHandler.await(600, TimeUnit.SECONDS));
Response response = responseHandler.response.get();
assertNotNull(response);
assertEquals(Response.Status.GATEWAY_TIMEOUT, response.getStatus());
assertTrue(ctx.close());
}
use of com.yahoo.jdisc.Response in project vespa by vespa-engine.
the class TimeoutManagerImplTestCase method requireThatManagedHandlerForwardsAllCalls.
@Test
public void requireThatManagedHandlerForwardsAllCalls() throws InterruptedException {
Request request = NonWorkingRequest.newInstance(REQUEST_URI);
MyRequestHandler requestHandler = MyRequestHandler.newInstance();
TimeoutManagerImpl timeoutManager = new TimeoutManagerImpl(Executors.defaultThreadFactory(), new SystemTimer());
RequestHandler managedHandler = timeoutManager.manageHandler(requestHandler);
MyResponseHandler responseHandler = MyResponseHandler.newInstance();
ContentChannel requestContent = managedHandler.handleRequest(request, responseHandler);
assertNotNull(requestContent);
ByteBuffer buf = ByteBuffer.allocate(69);
requestContent.write(buf, null);
assertSame(buf, requestHandler.content.buf);
MyCompletion writeCompletion = new MyCompletion();
requestContent.write(buf = ByteBuffer.allocate(69), writeCompletion);
assertSame(buf, requestHandler.content.buf);
requestHandler.content.writeCompletion.completed();
assertTrue(writeCompletion.completed.await(600, TimeUnit.SECONDS));
MyCompletion closeCompletion = new MyCompletion();
requestContent.close(closeCompletion);
requestHandler.content.closeCompletion.completed();
assertTrue(closeCompletion.completed.await(600, TimeUnit.SECONDS));
managedHandler.release();
assertTrue(requestHandler.destroyed);
Response response = new Response(Response.Status.OK);
ContentChannel responseContent = requestHandler.responseHandler.handleResponse(response);
assertNotNull(responseContent);
responseContent.write(buf = ByteBuffer.allocate(69), null);
assertSame(buf, responseHandler.content.buf);
responseContent.write(buf = ByteBuffer.allocate(69), writeCompletion = new MyCompletion());
assertSame(buf, responseHandler.content.buf);
responseHandler.content.writeCompletion.completed();
assertTrue(writeCompletion.completed.await(600, TimeUnit.SECONDS));
responseContent.close(closeCompletion = new MyCompletion());
responseHandler.content.closeCompletion.completed();
assertTrue(closeCompletion.completed.await(600, TimeUnit.SECONDS));
assertSame(response, responseHandler.response.get());
}
Aggregations