private void testClientDisconnect(boolean clean) throws Exception { CountDownLatch disconnectLatch = new CountDownLatch(1); CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { disconnectLatch.countDown(); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertTrue(disconnectLatch.await(10, TimeUnit.SECONDS)); assertDisconnect(clean); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
private void testClientDisconnect(boolean clean) throws Exception { CountDownLatch disconnectLatch = new CountDownLatch(1); CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { disconnectLatch.countDown(); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertTrue(disconnectLatch.await(10, TimeUnit.SECONDS)); assertDisconnect(clean); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
private void testClientDisconnect(boolean clean) throws Exception { final CountDownLatch disconnectLatch = new CountDownLatch(1); final CountDownLatch closedLatch = new CountDownLatch(1); server(new Consumer<TtyConnection>() { @Override public void accept(TtyConnection conn) { disconnectLatch.countDown(); conn.setCloseHandler(new Consumer<Void>() { @Override public void accept(Void v) { closedLatch.countDown(); } }); } }); assertConnect(); assertTrue(disconnectLatch.await(10, TimeUnit.SECONDS)); assertDisconnect(clean); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Override public void accept(final TtyConnection conn) { assertTrue(conn.lastAccessedTime() >= connTime); final long openTime = System.currentTimeMillis(); conn.setStdinHandler(new Consumer<int[]>() { @Override public void accept(int[] cp) { long delta = conn.lastAccessedTime() - openTime; switch (count.getAndIncrement()) { case 0: assertTrue(delta >= 0); latch.countDown(); break; case 1: assertTrue(delta >= 10); testComplete(); break; } } }); } });
@Test public void testLastAccessedTime() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicInteger count = new AtomicInteger(); long connTime = System.currentTimeMillis(); server(conn -> { assertTrue(conn.lastAccessedTime() >= connTime); long openTime = System.currentTimeMillis(); conn.setStdinHandler(cp -> { long delta = conn.lastAccessedTime() - openTime; switch (count.getAndIncrement()) { case 0: assertTrue(delta >= 0); latch.countDown(); break; case 1: assertTrue(delta >= 10); testComplete(); break; } }); }); assertConnect(); Thread.sleep(15); assertWrite("hello"); awaitLatch(latch); Thread.sleep(15); assertWrite("byebye"); await(); }
@Test public void testServerDisconnect() throws Exception { final CountDownLatch closedLatch = new CountDownLatch(1); server(new Consumer<TtyConnection>() { @Override public void accept(final TtyConnection conn) { conn.setStdinHandler(new Consumer<int[]>() { @Override public void accept(int[] bytes) { conn.close(); } }); conn.setCloseHandler(new Consumer<Void>() { @Override public void accept(Void v) { closedLatch.countDown(); } }); } }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testRead() throws Exception { final ArrayBlockingQueue<int[]> queue = new ArrayBlockingQueue<>(1); server(conn -> conn.setStdinHandler(data -> { queue.add(data); conn.stdoutHandler().accept(new int[]{'h', 'e', 'l', 'l', 'o'}); })); assertConnect(); assertWriteln(""); int[] data = queue.poll(10, TimeUnit.SECONDS); assertTrue(Arrays.equals(new int[]{'\r'}, data)); assertEquals("hello", assertReadString(5)); }
@Test public void testLastAccessedTime() throws Exception { CountDownLatch latch = new CountDownLatch(1); AtomicInteger count = new AtomicInteger(); long connTime = System.currentTimeMillis(); server(conn -> { assertTrue(conn.lastAccessedTime() >= connTime); long openTime = System.currentTimeMillis(); conn.setStdinHandler(cp -> { long delta = conn.lastAccessedTime() - openTime; switch (count.getAndIncrement()) { case 0: assertTrue(delta >= 0); latch.countDown(); break; case 1: assertTrue(delta >= 10); testComplete(); break; } }); }); assertConnect(); Thread.sleep(15); assertWrite("hello"); awaitLatch(latch); Thread.sleep(15); assertWrite("byebye"); await(); }
@Test public void testServerDisconnect() throws Exception { CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { conn.setStdinHandler(bytes -> { conn.close(); }); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testRead() throws Exception { final ArrayBlockingQueue<int[]> queue = new ArrayBlockingQueue<>(1); server(conn -> conn.setStdinHandler(data -> { queue.add(data); conn.stdoutHandler().accept(new int[]{'h', 'e', 'l', 'l', 'o'}); })); assertConnect(); assertWriteln(""); int[] data = queue.poll(10, TimeUnit.SECONDS); assertTrue(Arrays.equals(new int[]{'\r'}, data)); assertEquals("hello", assertReadString(5)); }
@Test public void testServerDisconnect() throws Exception { CountDownLatch closedLatch = new CountDownLatch(1); server(conn -> { conn.setStdinHandler(bytes -> { conn.close(); }); conn.setCloseHandler(v -> { closedLatch.countDown(); }); }); assertConnect(); assertWrite("whatever"); assertTrue(closedLatch.await(10, TimeUnit.SECONDS)); }
@Test public void testRead() throws Exception { final ArrayBlockingQueue<int[]> queue = new ArrayBlockingQueue<int[]>(1); server(new Consumer<TtyConnection>() { @Override public void accept(final TtyConnection conn) { conn.setStdinHandler(new Consumer<int[]>() { @Override public void accept(int[] data) { queue.add(data); conn.stdoutHandler().accept(new int[]{'h', 'e', 'l', 'l', 'o'}); } }); } }); assertConnect(); assertWriteln(""); int[] data = queue.poll(10, TimeUnit.SECONDS); assertTrue(Arrays.equals(new int[]{'\r'}, data)); assertEquals("hello", assertReadString(5)); }