@ -226,16 +226,33 @@ public class NativeMessageHeaderAccessorTests {
@@ -226,16 +226,33 @@ public class NativeMessageHeaderAccessorTests {
@Test // gh-25821
void copyImmutableToMutable ( ) {
NativeMessageHeaderAccessor source = new NativeMessageHeaderAccessor ( ) ;
source . addNativeHeader ( "foo" , "bar" ) ;
Message < String > messag e = MessageBuilder . createMessage ( "payload" , source . getMessageHeaders ( ) ) ;
NativeMessageHeaderAccessor sourceAccessor = new NativeMessageHeaderAccessor ( ) ;
sourceAccessor . addNativeHeader ( "foo" , "bar" ) ;
Message < String > sourc e = MessageBuilder . createMessage ( "payload" , sourceAccessor . getMessageHeaders ( ) ) ;
NativeMessageHeaderAccessor target = new NativeMessageHeaderAccessor ( ) ;
target . copyHeaders ( messag e. getHeaders ( ) ) ;
target . setLeaveMutable ( true ) ;
message = MessageBuilder . createMessage ( messag e. getPayload ( ) , target . getMessageHeaders ( ) ) ;
NativeMessageHeaderAccessor targetAccessor = new NativeMessageHeaderAccessor ( ) ;
targetAccessor . copyHeaders ( sourc e. getHeaders ( ) ) ;
targetAccessor . setLeaveMutable ( true ) ;
Message < ? > target = MessageBuilder . createMessage ( sourc e. getPayload ( ) , targetAccessor . getMessageHeaders ( ) ) ;
MessageHeaderAccessor accessor = MessageHeaderAccessor . getMutableAccessor ( message ) ;
MessageHeaderAccessor accessor = MessageHeaderAccessor . getMutableAccessor ( target ) ;
assertThat ( accessor . isMutable ( ) ) ;
( ( NativeMessageHeaderAccessor ) accessor ) . addNativeHeader ( "foo" , "baz" ) ;
assertThat ( ( ( NativeMessageHeaderAccessor ) accessor ) . getNativeHeader ( "foo" ) ) . containsExactly ( "bar" , "baz" ) ;
}
@Test // gh-25821
void copyIfAbsentImmutableToMutable ( ) {
NativeMessageHeaderAccessor sourceAccessor = new NativeMessageHeaderAccessor ( ) ;
sourceAccessor . addNativeHeader ( "foo" , "bar" ) ;
Message < String > source = MessageBuilder . createMessage ( "payload" , sourceAccessor . getMessageHeaders ( ) ) ;
MessageHeaderAccessor targetAccessor = new NativeMessageHeaderAccessor ( ) ;
targetAccessor . copyHeadersIfAbsent ( source . getHeaders ( ) ) ;
targetAccessor . setLeaveMutable ( true ) ;
Message < ? > target = MessageBuilder . createMessage ( source . getPayload ( ) , targetAccessor . getMessageHeaders ( ) ) ;
MessageHeaderAccessor accessor = MessageHeaderAccessor . getMutableAccessor ( target ) ;
assertThat ( accessor . isMutable ( ) ) ;
( ( NativeMessageHeaderAccessor ) accessor ) . addNativeHeader ( "foo" , "baz" ) ;
assertThat ( ( ( NativeMessageHeaderAccessor ) accessor ) . getNativeHeader ( "foo" ) ) . containsExactly ( "bar" , "baz" ) ;