@Test public void testStream() throws Exception { AtomicReference<Context> sessionContext = new AtomicReference<>(); socketHandler = () -> { return socket -> { Context context = Vertx.currentContext(); assertNotNull(context); assertTrue(sessionContext.compareAndSet(null, context)); socket.setWriteQueueMaxSize(5); socket.write("Hello"); assertTrue(socket.writeQueueFull()); socket.drainHandler(v -> { assertEquals(sessionContext.get(), Vertx.currentContext()); socket.write("World"); }); }; }; startServers(); List<String> messages = Collections.synchronizedList(new ArrayList<>()); fetchMessages(messages); await(); }
private void fetchMessages(List<String> messages) { client.post("/test/400/8ne8e94a/xhr", onSuccess(resp -> { assertEquals(200, resp.statusCode()); resp.bodyHandler(buffer -> { String body = buffer.toString(); if (body.startsWith("a")) { JsonArray content = new JsonArray(body.substring(1)); messages.addAll(content.stream().map(Object::toString).collect(toList())); } if (messages.size() < 2) { fetchMessages(messages); } else { assertEquals(Arrays.asList("Hello", "World"), messages); testComplete(); } }); })).end(); } }
private void fetchMessages(List<String> messages) { client.post("/test/400/8ne8e94a/xhr", resp -> { assertEquals(200, resp.statusCode()); resp.bodyHandler(buffer -> { String body = buffer.toString(); if (body.startsWith("a")) { JsonArray content = new JsonArray(body.substring(1)); messages.addAll(content.stream().map(Object::toString).collect(toList())); } if (messages.size() < 2) { fetchMessages(messages); } else { assertEquals(Arrays.asList("Hello", "World"), messages); testComplete(); } }); }).end(); } }
@Test public void testStream() throws Exception { AtomicReference<Context> sessionContext = new AtomicReference<>(); socketHandler = () -> { return socket -> { Context context = Vertx.currentContext(); assertNotNull(context); assertTrue(sessionContext.compareAndSet(null, context)); socket.setWriteQueueMaxSize(5); socket.write("Hello"); assertTrue(socket.writeQueueFull()); socket.drainHandler(v -> { assertEquals(sessionContext.get(), Vertx.currentContext()); socket.write("World"); }); }; }; startServers(); List<String> messages = Collections.synchronizedList(new ArrayList<>()); fetchMessages(messages); await(); }