@Test public void testConnectFailure() throws Exception { final CountDownLatch done = new CountDownLatch(1); final AtomicBoolean success = new AtomicBoolean(); final AtomicReference<Throwable> failure = new AtomicReference<>(); Promise<RedisClientBase> connect = RedisClientBase.connect("localhost", 6380); connect .onSuccess( new Block<RedisClientBase>() { @Override public void apply(RedisClientBase redisClientBase) { success.set(true); done.countDown(); } }) .onFailure( new Block<Throwable>() { @Override public void apply(Throwable throwable) { success.set(false); failure.set(throwable); done.countDown(); } }); done.await(5000, TimeUnit.MILLISECONDS); assertFalse(success.get()); assertEquals("Connection refused", failure.get().getMessage()); }
@Test public void testConnect() throws Exception { final CountDownLatch done = new CountDownLatch(1); final AtomicBoolean success = new AtomicBoolean(); final AtomicReference<RedisClientBase> client = new AtomicReference<>(); Promise<RedisClientBase> connect = RedisClientBase.connect("localhost", 6379); connect .onSuccess( new Block<RedisClientBase>() { @Override public void apply(RedisClientBase redisClientBase) { success.set(true); client.set(redisClientBase); done.countDown(); } }) .onFailure( new Block<Throwable>() { @Override public void apply(Throwable throwable) { success.set(false); done.countDown(); } }); done.await(5000, TimeUnit.MILLISECONDS); final CountDownLatch done2 = new CountDownLatch(1); assertTrue(success.get()); client .get() .close() .onSuccess( new Block<Void>() { @Override public void apply(Void aVoid) { success.set(true); done2.countDown(); } }) .onFailure( new Block<Throwable>() { @Override public void apply(Throwable throwable) { success.set(false); done2.countDown(); } }); done2.await(5000, TimeUnit.MILLISECONDS); assertTrue(success.get()); }
@Test public void testExecute() throws Exception { final CountDownLatch done = new CountDownLatch(1); final AtomicBoolean success = new AtomicBoolean(); RedisClientBase.connect("localhost", 6379) .onSuccess( new Block<RedisClientBase>() { @Override public void apply(final RedisClientBase redisClientBase) { redisClientBase .execute(StatusReply.class, new Command("set", "test", "test")) .onSuccess( new Block<StatusReply>() { @Override public void apply(StatusReply reply) { if (reply.data().equals("OK")) { redisClientBase .execute(BulkReply.class, new Command("get", "test")) .onSuccess( new Block<BulkReply>() { @Override public void apply(BulkReply reply) { if (reply.asAsciiString().equals("test")) { success.set(true); } done.countDown(); redisClientBase.close(); } }); } else { done.countDown(); redisClientBase.close(); } } }); } }); done.await(5000, TimeUnit.MILLISECONDS); assertTrue(success.get()); }