Better testing with Jedis API
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/657047f0 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/657047f0 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/657047f0 Branch: refs/heads/0.5.0 Commit: 657047f053938eb768e689147fe3e1cf2c6fb6a9 Parents: 79e666f Author: Andrew Kennedy <[email protected]> Authored: Mon Apr 22 18:06:29 2013 +0100 Committer: Andrew Kennedy <[email protected]> Committed: Wed Apr 24 13:25:44 2013 +0100 ---------------------------------------------------------------------- .../entity/nosql/redis/JedisSupport.java | 63 ++++++++++++++++++++ .../entity/nosql/redis/RedisEc2LiveTest.java | 2 +- .../nosql/redis/RedisIntegrationTest.java | 2 +- .../entity/nosql/redis/RedisSupport.java | 41 ------------- 4 files changed, 65 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/657047f0/software/nosql/src/test/java/brooklyn/entity/nosql/redis/JedisSupport.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/JedisSupport.java b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/JedisSupport.java new file mode 100644 index 0000000..d481136 --- /dev/null +++ b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/JedisSupport.java @@ -0,0 +1,63 @@ +/* + * Copyright 2012-2013 by Cloudsoft Corp. + */ +package brooklyn.entity.nosql.redis; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPubSub; + +/** + * {@link RedisStore} testing using Jedis API. + */ +public class JedisSupport { + private static final Logger log = LoggerFactory.getLogger(JedisSupport.class); + + private RedisStore redis; + + public JedisSupport(RedisStore redis) { + this.redis = redis; + } + + /** + * Exercise the {@link RedisStore} using the Jedis API. + */ + public void redisTest() throws Exception { + final CountDownLatch latch = new CountDownLatch(1); + Jedis client = getRedisClient(redis); + client.subscribe(new JedisPubSub() { + public void onMessage(String channel, String message) { + assertEquals(channel, "brooklyn"); + assertEquals(message, "message"); + latch.countDown(); + } + public void onSubscribe(String channel, int subscribedChannels) { } + public void onUnsubscribe(String channel, int subscribedChannels) { } + public void onPSubscribe(String pattern, int subscribedChannels) { } + public void onPUnsubscribe(String pattern, int subscribedChannels) { } + public void onPMessage(String pattern, String channel, String message) { } + }, "brooklyn"); + + client.publish("brooklyn", "message"); + + assertTrue(latch.await(60, TimeUnit.SECONDS)); + client.disconnect(); + } + + private Jedis getRedisClient(RedisStore redis) { + int port = redis.getAttribute(RedisStore.REDIS_PORT); + String host = redis.getAttribute(RedisStore.HOSTNAME); + Jedis client = new Jedis(host, port); + client.connect(); + assertTrue(client.isConnected()); + return client; + } +} http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/657047f0/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java index eb49ac9..e9365f3 100644 --- a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java +++ b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisEc2LiveTest.java @@ -29,7 +29,7 @@ public class RedisEc2LiveTest extends AbstractEc2LiveTest { app.start(ImmutableList.of(loc)); EntityTestUtils.assertAttributeEqualsEventually(redis, RedisStore.SERVICE_UP, true); - RedisSupport support = new RedisSupport(redis); + JedisSupport support = new JedisSupport(redis); try { support.redisTest(); } finally { http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/657047f0/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisIntegrationTest.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisIntegrationTest.java b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisIntegrationTest.java index 1ddfa92..35b6a9e 100644 --- a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisIntegrationTest.java +++ b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisIntegrationTest.java @@ -66,7 +66,7 @@ public class RedisIntegrationTest { EntityTestUtils.assertAttributeEqualsEventually(redis, Startable.SERVICE_UP, true); - RedisSupport support = new RedisSupport(redis); + JedisSupport support = new JedisSupport(redis); try { support.redisTest(); } finally { http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/657047f0/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisSupport.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisSupport.java b/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisSupport.java deleted file mode 100644 index f617922..0000000 --- a/software/nosql/src/test/java/brooklyn/entity/nosql/redis/RedisSupport.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2012-2013 by Cloudsoft Corp. - */ -package brooklyn.entity.nosql.redis; - -import static org.testng.Assert.assertTrue; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import redis.clients.jedis.Connection; - -/** - * {@link RedisStore} testing using Redis API. - */ -public class RedisSupport { - private static final Logger log = LoggerFactory.getLogger(RedisSupport.class); - - private RedisStore redis; - - public RedisSupport(RedisStore redis) { - this.redis = redis; - } - - /** - * Exercise the {@link RedisStore} using the Redis API. - */ - public void redisTest() throws Exception { - // Access Redis - Connection connection = getRedisConnection(redis); - assertTrue(connection.isConnected()); - connection.disconnect(); - } - - private Connection getRedisConnection(RedisStore redis) { - int port = redis.getAttribute(RedisStore.REDIS_PORT); - Connection connection = new Connection("localhost", port); - connection.connect(); - return connection; - } -}
