INT-1069: Change MessageGroup interfaces to better match use cases
This commit is contained in:
@@ -34,7 +34,7 @@ public class SequenceSizeReleaseStrategyTests {
|
||||
public void testIncompleteList() {
|
||||
Message<String> message = MessageBuilder.withPayload("test1")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message);
|
||||
SequenceSizeReleaseStrategy releaseStrategy = new SequenceSizeReleaseStrategy();
|
||||
assertFalse(releaseStrategy.canRelease(messages));
|
||||
@@ -46,7 +46,7 @@ public class SequenceSizeReleaseStrategyTests {
|
||||
.setSequenceSize(2).build();
|
||||
Message<String> message2 = MessageBuilder.withPayload("test2")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message1);
|
||||
messages.add(message2);
|
||||
SequenceSizeReleaseStrategy releaseStrategy = new SequenceSizeReleaseStrategy();
|
||||
|
||||
@@ -34,7 +34,7 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
public void testIncompleteList() {
|
||||
Message<String> message = MessageBuilder.withPayload("test1")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message);
|
||||
TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy();
|
||||
assertFalse(releaseStrategy.canRelease(messages));
|
||||
@@ -44,7 +44,7 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
public void testIncompleteListWithTimeout() {
|
||||
Message<String> message = MessageBuilder.withPayload("test1")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message);
|
||||
TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy(TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_THRESHOLD, -100);
|
||||
assertTrue(releaseStrategy.canRelease(messages));
|
||||
@@ -54,7 +54,7 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
public void testIncompleteListWithCount() {
|
||||
Message<String> message = MessageBuilder.withPayload("test1")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message);
|
||||
TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy(1, TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_TIMEOUT);
|
||||
assertTrue(releaseStrategy.canRelease(messages));
|
||||
@@ -66,7 +66,7 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
.setSequenceSize(2).build();
|
||||
Message<String> message2 = MessageBuilder.withPayload("test2")
|
||||
.setSequenceSize(2).build();
|
||||
MessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
|
||||
messages.add(message1);
|
||||
messages.add(message2);
|
||||
SequenceSizeReleaseStrategy releaseStrategy = new SequenceSizeReleaseStrategy();
|
||||
|
||||
@@ -16,15 +16,19 @@
|
||||
|
||||
package org.springframework.integration.store;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.message.StringMessage;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
*/
|
||||
@@ -68,17 +72,20 @@ public class MessageStoreTests {
|
||||
return Arrays.asList(testMessages).iterator();
|
||||
}
|
||||
|
||||
public void addMessageToGroup(Object correlationKey, Message<?> message) {
|
||||
public MessageGroup addMessageToGroup(Object correlationKey, Message<?> message) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public MessageGroup getMessageGroup(Object correlationKey) {
|
||||
return removed ? new SimpleMessageGroup(correlationKey) : testMessages;
|
||||
}
|
||||
|
||||
public void markMessageGroup(MessageGroup group) {
|
||||
public MessageGroup markMessageGroup(MessageGroup group) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void markMessageInGroup(Object key, Message<?> messageToMark) {
|
||||
public MessageGroup removeMessageFromGroup(Object key, Message<?> messageToMark) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void removeMessageGroup(Object correlationKey) {
|
||||
|
||||
@@ -5,11 +5,9 @@ import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.message.MessageBuilder;
|
||||
import org.springframework.integration.store.SimpleMessageGroup;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
@@ -20,28 +18,25 @@ public class SimpleMessageGroupTests {
|
||||
|
||||
private Object key = new Object();
|
||||
|
||||
private MessageGroup group;
|
||||
|
||||
@Before
|
||||
public void buildMessageGroup() {
|
||||
group = new SimpleMessageGroup(Collections.<Message<?>> emptyList(), key);
|
||||
}
|
||||
private SimpleMessageGroup group = new SimpleMessageGroup(Collections.<Message<?>> emptyList(), key);
|
||||
|
||||
@Test
|
||||
public void shouldFindSupersedingMessages() {
|
||||
final Message<?> message1 = MessageBuilder.withPayload("test").setSequenceNumber(1).build();
|
||||
final Message<?> message2 = MessageBuilder.fromMessage(message1).setSequenceNumber(1).build();
|
||||
assertThat(group.add(message1), is(true));
|
||||
assertThat(group.canAdd(message1), is(true));
|
||||
group.add(message1);
|
||||
group.add(message2);
|
||||
assertThat(group.add(message1), is(false));
|
||||
assertThat(group.canAdd(message1), is(false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldIgnoreMessagesWithZeroSequenceNumber() {
|
||||
final Message<?> message1 = MessageBuilder.withPayload("test").build();
|
||||
final Message<?> message2 = MessageBuilder.fromMessage(message1).build();
|
||||
assertThat(group.add(message1), is(true));
|
||||
assertThat(group.canAdd(message1), is(true));
|
||||
group.add(message1);
|
||||
group.add(message2);
|
||||
assertThat(group.add(message1), is(true));
|
||||
assertThat(group.canAdd(message1), is(true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,6 +82,17 @@ public class SimpleMessageStoreTests {
|
||||
assertEquals(1, store.getMessageGroup("bar").size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldRemoveFromGroup() throws Exception {
|
||||
SimpleMessageStore store = new SimpleMessageStore();
|
||||
Message<String> testMessage1 = MessageBuilder.withPayload("foo").build();
|
||||
store.addMessageToGroup("bar", testMessage1);
|
||||
Message<?> testMessage2 = store.getMessageGroup("bar").getOne();
|
||||
MessageGroup group = store.removeMessageFromGroup("bar", testMessage2);
|
||||
assertEquals(0, group.size());
|
||||
assertEquals(0, store.getMessageGroup("bar").size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCopyMessageGroup() throws Exception {
|
||||
SimpleMessageStore store = new SimpleMessageStore();
|
||||
|
||||
Reference in New Issue
Block a user