RetrievalBlockingMessageStore now accepts a target MessageStore in its constructor.

This commit is contained in:
Mark Fisher
2008-03-29 15:34:12 +00:00
parent 2b4f08270e
commit dd6635b86e
2 changed files with 73 additions and 6 deletions

View File

@@ -37,6 +37,15 @@ public class RetrievalBlockingMessageStoreTests {
assertNull(message);
}
@Test
public void testWrappedTargetGetWithElapsedTimeout() {
MessageStore target = new SimpleMessageStore(10);
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(target);
publishWithDelay(store, "foo", "bar", 100);
Message<?> message = store.get("foo", 5);
assertNull(message);
}
@Test
public void testGetWithinTimeout() {
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(10);
@@ -47,6 +56,17 @@ public class RetrievalBlockingMessageStoreTests {
assertNotNull(store.get("foo", 0));
}
@Test
public void testWrappedTargetGetWithinTimeout() {
MessageStore target = new SimpleMessageStore(10);
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(target);
publishWithDelay(store, "foo", "bar", 50);
Message<?> message = store.get("foo", 500);
assertNotNull(message);
assertEquals("bar", message.getPayload());
assertNotNull(store.get("foo", 0));
}
@Test
public void testRemoveWithElapsedTimeout() {
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(10);
@@ -55,6 +75,15 @@ public class RetrievalBlockingMessageStoreTests {
assertNull(message);
}
@Test
public void testWrappedMessageStoreRemoveWithElapsedTimeout() {
MessageStore target = new SimpleMessageStore(10);
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(target);
publishWithDelay(store, "foo", "bar", 100);
Message<?> message = store.remove("foo", 5);
assertNull(message);
}
@Test
public void testRemoveWithinTimeout() {
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(10);
@@ -65,6 +94,17 @@ public class RetrievalBlockingMessageStoreTests {
assertNull(store.get("foo", 0));
}
@Test
public void testWrappedMessageStoreRemoveWithinTimeout() {
MessageStore target = new SimpleMessageStore(10);
final RetrievalBlockingMessageStore store = new RetrievalBlockingMessageStore(target);
publishWithDelay(store, "foo", "bar", 50);
Message<?> message = store.remove("foo", 500);
assertNotNull(message);
assertEquals("bar", message.getPayload());
assertNull(store.get("foo", 0));
}
private static void publishWithDelay(final MessageStore store, final String key, final String value, final long delay) {
Executors.newSingleThreadExecutor().execute(new Runnable() {