@Test public void setNativeHeader() { MultiValueMap<String, String> nativeHeaders = new LinkedMultiValueMap<>(); nativeHeaders.add("foo", "bar"); NativeMessageHeaderAccessor headers = new NativeMessageHeaderAccessor(nativeHeaders); headers.setNativeHeader("foo", "baz"); assertEquals(Arrays.asList("baz"), headers.getNativeHeader("foo")); }
private void doPut(MessageHeaderAccessor accessor, String key, String value) { accessor.setHeader(key, value); if (accessor instanceof NativeMessageHeaderAccessor) { NativeMessageHeaderAccessor nativeAccessor = (NativeMessageHeaderAccessor) accessor; nativeAccessor.setNativeHeader(key, value); } else { Object nativeHeaders = accessor .getHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS); if (nativeHeaders == null) { accessor.setHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS, nativeHeaders = new LinkedMultiValueMap<>()); } if (nativeHeaders instanceof Map<?, ?>) { ((Map) nativeHeaders).put(key, Collections.singletonList(value)); } } }
@Test public void setNativeHeaderNullValue() { MultiValueMap<String, String> nativeHeaders = new LinkedMultiValueMap<>(); nativeHeaders.add("foo", "bar"); NativeMessageHeaderAccessor headers = new NativeMessageHeaderAccessor(nativeHeaders); headers.setNativeHeader("foo", null); assertNull(headers.getNativeHeader("foo")); }
@Test public void setNativeHeaderImmutable() { NativeMessageHeaderAccessor headerAccessor = new NativeMessageHeaderAccessor(); headerAccessor.setNativeHeader("foo", "bar"); headerAccessor.setImmutable(); this.thrown.expect(IllegalStateException.class); this.thrown.expectMessage("Already immutable"); headerAccessor.setNativeHeader("foo", "baz"); }
@Test public void setNativeHeaderLazyInit() { NativeMessageHeaderAccessor headerAccessor = new NativeMessageHeaderAccessor(); headerAccessor.setNativeHeader("foo", "baz"); assertEquals(Arrays.asList("baz"), headerAccessor.getNativeHeader("foo")); }
@Test public void createFromMessageAndModify() { MultiValueMap<String, String> inputNativeHeaders = new LinkedMultiValueMap<>(); inputNativeHeaders.add("foo", "bar"); inputNativeHeaders.add("bar", "baz"); Map<String, Object> nativeHeaders = new HashMap<>(); nativeHeaders.put("a", "b"); nativeHeaders.put(NativeMessageHeaderAccessor.NATIVE_HEADERS, inputNativeHeaders); GenericMessage<String> message = new GenericMessage<>("p", nativeHeaders); NativeMessageHeaderAccessor headerAccessor = new NativeMessageHeaderAccessor(message); headerAccessor.setHeader("a", "B"); headerAccessor.setNativeHeader("foo", "BAR"); Map<String, Object> actual = headerAccessor.toMap(); assertEquals(2, actual.size()); assertEquals("B", actual.get("a")); @SuppressWarnings("unchecked") Map<String, List<String>> actualNativeHeaders = (Map<String, List<String>>) actual.get(NativeMessageHeaderAccessor.NATIVE_HEADERS); assertNotNull(actualNativeHeaders); assertEquals(Arrays.asList("BAR"), actualNativeHeaders.get("foo")); assertEquals(Arrays.asList("baz"), actualNativeHeaders.get("bar")); }
@Test public void setNativeHeaderLazyInitNullValue() { NativeMessageHeaderAccessor headerAccessor = new NativeMessageHeaderAccessor(); headerAccessor.setNativeHeader("foo", null); assertNull(headerAccessor.getNativeHeader("foo")); assertNull(headerAccessor.getMessageHeaders().get(NativeMessageHeaderAccessor.NATIVE_HEADERS)); }
private void doPut(MessageHeaderAccessor accessor, String key, String value) { accessor.setHeader(key, value); if (accessor instanceof NativeMessageHeaderAccessor) { NativeMessageHeaderAccessor nativeAccessor = (NativeMessageHeaderAccessor) accessor; nativeAccessor.setNativeHeader(key, value); } else { Object nativeHeaders = accessor .getHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS); if (nativeHeaders == null) { accessor.setHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS, nativeHeaders = new LinkedMultiValueMap<>()); } if (nativeHeaders instanceof Map<?, ?>) { ((Map) nativeHeaders).put(key, Collections.singletonList(value)); } } }