Added header-copying constructor to GenericMessage (INT-123). Also simplified the AbstractMessageHandlerAdapter.
This commit is contained in:
@@ -51,7 +51,7 @@ public class DefaultMessageHandlerAdapterTests {
|
||||
@Test
|
||||
public void testMessageAsMethodParameterAndObjectAsReturnValue() {
|
||||
DefaultMessageHandlerAdapter<TestHandler> adapter = new DefaultMessageHandlerAdapter<TestHandler>();
|
||||
adapter.setShouldUseMapperOnInvocation(false);
|
||||
adapter.setExpectsMessage(true);
|
||||
adapter.setObject(new TestHandler());
|
||||
adapter.setMethodName("acceptMessageAndReturnObject");
|
||||
adapter.afterPropertiesSet();
|
||||
@@ -62,7 +62,7 @@ public class DefaultMessageHandlerAdapterTests {
|
||||
@Test
|
||||
public void testMessageAsMethodParameterAndMessageAsReturnValue() {
|
||||
DefaultMessageHandlerAdapter<TestHandler> adapter = new DefaultMessageHandlerAdapter<TestHandler>();
|
||||
adapter.setShouldUseMapperOnInvocation(false);
|
||||
adapter.setExpectsMessage(true);
|
||||
adapter.setObject(new TestHandler());
|
||||
adapter.setMethodName("acceptMessageAndReturnMessage");
|
||||
adapter.afterPropertiesSet();
|
||||
@@ -73,7 +73,7 @@ public class DefaultMessageHandlerAdapterTests {
|
||||
@Test
|
||||
public void testMessageSubclassAsMethodParameterAndMessageAsReturnValue() {
|
||||
DefaultMessageHandlerAdapter<TestHandler> adapter = new DefaultMessageHandlerAdapter<TestHandler>();
|
||||
adapter.setShouldUseMapperOnInvocation(false);
|
||||
adapter.setExpectsMessage(true);
|
||||
adapter.setObject(new TestHandler());
|
||||
adapter.setMethodName("acceptMessageSubclassAndReturnMessage");
|
||||
adapter.afterPropertiesSet();
|
||||
@@ -84,7 +84,7 @@ public class DefaultMessageHandlerAdapterTests {
|
||||
@Test
|
||||
public void testMessageSubclassAsMethodParameterAndMessageSubclassAsReturnValue() {
|
||||
DefaultMessageHandlerAdapter<TestHandler> adapter = new DefaultMessageHandlerAdapter<TestHandler>();
|
||||
adapter.setShouldUseMapperOnInvocation(false);
|
||||
adapter.setExpectsMessage(true);
|
||||
adapter.setObject(new TestHandler());
|
||||
adapter.setMethodName("acceptMessageSubclassAndReturnMessageSubclass");
|
||||
adapter.afterPropertiesSet();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.integration.message;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -55,4 +56,14 @@ public class GenericMessageTests {
|
||||
assertFalse(message.isExpired());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMessageHeaderCopied() {
|
||||
MessageHeader header = new MessageHeader();
|
||||
header.setAttribute("testAttribute", new Integer(123));
|
||||
header.setProperty("testProperty", "foo");
|
||||
GenericMessage<String> message = new GenericMessage<String>("test", header);
|
||||
assertEquals(new Integer(123), message.getHeader().getAttribute("testAttribute"));
|
||||
assertEquals("foo", message.getHeader().getProperty("testProperty"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.integration.message;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -39,24 +40,55 @@ public class MessageHeaderTests {
|
||||
@Test
|
||||
public void testAttributes() {
|
||||
MessageHeader header = new MessageHeader();
|
||||
Integer integer = new Integer(123);
|
||||
header.setAttribute("test", integer);
|
||||
assertEquals(integer, header.getAttribute("test"));
|
||||
Integer value = new Integer(123);
|
||||
Object previousValue = header.setAttribute("test", value);
|
||||
assertNull(previousValue);
|
||||
assertEquals(value, header.getAttribute("test"));
|
||||
assertNull(header.getAttribute("nosuchattribute"));
|
||||
Set<String> names = header.getAttributeNames();
|
||||
assertEquals(1, names.size());
|
||||
assertTrue(names.contains("test"));
|
||||
Integer newValue = new Integer(456);
|
||||
previousValue = header.setAttribute("test", newValue);
|
||||
assertEquals(value, previousValue);
|
||||
assertEquals(newValue, header.getAttribute("test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProperties() {
|
||||
MessageHeader header = new MessageHeader();
|
||||
header.setProperty("foo", "bar");
|
||||
String previousValue = header.setProperty("foo", "bar");
|
||||
assertNull(previousValue);
|
||||
assertEquals("bar", header.getProperty("foo"));
|
||||
assertNull(header.getProperty("nosuchproperty"));
|
||||
Set<String> names = header.getPropertyNames();
|
||||
assertEquals(1, names.size());
|
||||
assertTrue(names.contains("foo"));
|
||||
previousValue = header.setProperty("foo", "baz");
|
||||
assertEquals("bar", previousValue);
|
||||
assertEquals("baz", header.getProperty("foo"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAttributeIfAbsent() {
|
||||
MessageHeader header = new MessageHeader();
|
||||
Integer integer = new Integer(123);
|
||||
assertNull(header.getAttribute("test"));
|
||||
assertFalse(header.getAttributeNames().contains("test"));
|
||||
Object existingValue = header.setAttributeIfAbsent("test", integer);
|
||||
assertNull(existingValue);
|
||||
assertEquals(integer, header.getAttribute("test"));
|
||||
assertTrue(header.getAttributeNames().contains("test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAttributeIfAbsentDoesNotOverride() {
|
||||
MessageHeader header = new MessageHeader();
|
||||
Integer originalValue = new Integer(123);
|
||||
header.setAttributeIfAbsent("test", originalValue);
|
||||
Object existingValue = header.setAttributeIfAbsent("test", new Integer(456));
|
||||
assertEquals(originalValue, header.getAttribute("test"));
|
||||
assertEquals(originalValue, existingValue);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user