package org.redisson;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.Assert;
import org.junit.Test;
import org.redisson.api.RBucketReactive;
public class RedissonBucketReactiveTest extends BaseReactiveTest {
@Test
public void testExpire() throws InterruptedException {
RBucketReactive<String> bucket = redisson.getBucket("test1");
sync(bucket.set("someValue", 1, TimeUnit.SECONDS));
Assert.assertNotNull(sync(bucket.get()));
Thread.sleep(1100);
Assert.assertNull(sync(bucket.get()));
}
@Test
public void testRenamenx() {
RBucketReactive<String> bucket = redisson.getBucket("test");
sync(bucket.set("someValue"));
RBucketReactive<String> bucket2 = redisson.getBucket("test2");
sync(bucket2.set("someValue2"));
Assert.assertTrue(sync(bucket.renamenx("test1")));
RBucketReactive<String> oldBucket = redisson.getBucket("test");
Assert.assertNull(sync(oldBucket.get()));
RBucketReactive<String> newBucket = redisson.getBucket("test1");
Assert.assertEquals("someValue", sync(newBucket.get()));
Assert.assertFalse(sync(newBucket.renamenx("test2")));
}
@Test
public void testRename() {
RBucketReactive<String> bucket = redisson.getBucket("test");
sync(bucket.set("someValue"));
sync(bucket.rename("test1"));
RBucketReactive<String> oldBucket = redisson.getBucket("test");
Assert.assertNull(sync(oldBucket.get()));
RBucketReactive<String> newBucket = redisson.getBucket("test1");
Assert.assertEquals("someValue", sync(newBucket.get()));
}
@Test
public void testSetGet() {
RBucketReactive<String> bucket = redisson.getBucket("test");
Assert.assertNull(sync(bucket.get()));
String value = "somevalue";
sync(bucket.set(value));
Assert.assertEquals(value, sync(bucket.get()));
}
@Test
public void testSetDelete() {
RBucketReactive<String> bucket = redisson.getBucket("test");
String value = "somevalue";
sync(bucket.set(value));
Assert.assertEquals(value, sync(bucket.get()));
Assert.assertTrue(sync(bucket.delete()));
Assert.assertNull(sync(bucket.get()));
Assert.assertFalse(sync(bucket.delete()));
}
@Test
public void testSetExist() {
RBucketReactive<String> bucket = redisson.getBucket("test");
Assert.assertNull(sync(bucket.get()));
String value = "somevalue";
sync(bucket.set(value));
Assert.assertEquals(value, sync(bucket.get()));
Assert.assertTrue(sync(bucket.isExists()));
}
@Test
public void testSetDeleteNotExist() {
RBucketReactive<String> bucket = redisson.getBucket("test");
Assert.assertNull(sync(bucket.get()));
String value = "somevalue";
sync(bucket.set(value));
Assert.assertEquals(value, sync(bucket.get()));
Assert.assertTrue(sync(bucket.isExists()));
sync(bucket.delete());
Assert.assertFalse(sync(bucket.isExists()));
}
@Test
public void testFindPattern() {
Collection<String> names = Arrays.asList("test:testGetPattern:one", "test:testGetPattern:two");
Collection<String> vals = Arrays.asList("one-val", "two-val");
sync(redisson.getBucket("test:three").set("three-val"));
sync(redisson.getBucket("test:testGetPattern:one").set("one-val"));
sync(redisson.getBucket("test:testGetPattern:two").set("two-val"));
List<RBucketReactive<String>> buckets = redisson.findBuckets("test:testGetPattern:*");
Assert.assertEquals(2, buckets.size());
Assert.assertTrue(names.contains(buckets.get(0).getName()));
Assert.assertTrue(names.contains(buckets.get(1).getName()));
Assert.assertTrue(vals.contains(sync(buckets.get(0).get())));
Assert.assertTrue(vals.contains(sync(buckets.get(1).get())));
for (RBucketReactive<String> bucket : buckets) {
bucket.delete();
}
}
}