package org.redisson;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Assert;
import org.junit.Test;
import org.redisson.api.RQueueReactive;
public class RedissonQueueReactiveTest extends BaseReactiveTest {
@Test
public void testAddOffer() {
RQueueReactive<Integer> queue = redisson.getQueue("queue");
sync(queue.add(1));
sync(queue.offer(2));
sync(queue.add(3));
sync(queue.offer(4));
assertThat(sync(queue)).containsExactly(1, 2, 3, 4);
Assert.assertEquals((Integer)1, sync(queue.poll()));
assertThat(sync(queue)).containsExactly(2, 3, 4);
Assert.assertEquals((Integer)2, sync(queue.peek()));
}
@Test
public void testRemove() {
RQueueReactive<Integer> queue = redisson.getQueue("queue");
sync(queue.add(1));
sync(queue.add(2));
sync(queue.add(3));
sync(queue.add(4));
sync(queue.poll());
sync(queue.poll());
assertThat(sync(queue)).containsExactly(3, 4);
sync(queue.poll());
sync(queue.poll());
Assert.assertEquals(0, sync(queue.size()).intValue());
}
@Test
public void testRemoveEmpty() {
RQueueReactive<Integer> queue = redisson.getQueue("queue");
Assert.assertNull(sync(queue.poll()));
}
}