|
1 | 1 | /* |
2 | | - * Copyright 2002-2016 the original author or authors. |
| 2 | + * Copyright 2002-2017 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
|
36 | 36 | import org.mockito.Captor; |
37 | 37 | import org.mockito.Mock; |
38 | 38 | import org.mockito.MockitoAnnotations; |
39 | | -import org.mockito.invocation.InvocationOnMock; |
40 | 39 | import org.mockito.stubbing.Answer; |
41 | 40 |
|
| 41 | +import org.springframework.beans.DirectFieldAccessor; |
42 | 42 | import org.springframework.jms.InvalidDestinationException; |
43 | 43 | import org.springframework.jms.MessageNotReadableException; |
44 | 44 | import org.springframework.jms.StubTextMessage; |
45 | 45 | import org.springframework.jms.support.converter.MessageConverter; |
| 46 | +import org.springframework.jms.support.converter.MessagingMessageConverter; |
46 | 47 | import org.springframework.jms.support.converter.SimpleMessageConverter; |
47 | 48 | import org.springframework.jms.support.destination.DestinationResolutionException; |
48 | 49 | import org.springframework.messaging.Message; |
@@ -83,6 +84,47 @@ public void validateJmsTemplate() { |
83 | 84 | assertSame(this.jmsTemplate, this.messagingTemplate.getJmsTemplate()); |
84 | 85 | } |
85 | 86 |
|
| 87 | + @Test |
| 88 | + public void payloadConverterIsConsistentConstructor() { |
| 89 | + MessageConverter messageConverter = mock(MessageConverter.class); |
| 90 | + given(this.jmsTemplate.getMessageConverter()).willReturn(messageConverter); |
| 91 | + JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate(this.jmsTemplate); |
| 92 | + messagingTemplate.afterPropertiesSet(); |
| 93 | + assertPayloadConverter(messagingTemplate, messageConverter); |
| 94 | + } |
| 95 | + |
| 96 | + @Test |
| 97 | + public void payloadConverterIsConsistentSetter() { |
| 98 | + MessageConverter messageConverter = mock(MessageConverter.class); |
| 99 | + given(this.jmsTemplate.getMessageConverter()).willReturn(messageConverter); |
| 100 | + JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate(); |
| 101 | + messagingTemplate.setJmsTemplate(this.jmsTemplate); |
| 102 | + messagingTemplate.afterPropertiesSet(); |
| 103 | + assertPayloadConverter(messagingTemplate, messageConverter); |
| 104 | + } |
| 105 | + |
| 106 | + @Test |
| 107 | + public void customConverterAlwaysTakesPrecedence() { |
| 108 | + MessageConverter messageConverter = mock(MessageConverter.class); |
| 109 | + given(this.jmsTemplate.getMessageConverter()).willReturn(messageConverter); |
| 110 | + MessageConverter customMessageConverter = mock(MessageConverter.class); |
| 111 | + JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate(); |
| 112 | + messagingTemplate.setJmsMessageConverter( |
| 113 | + new MessagingMessageConverter(customMessageConverter)); |
| 114 | + messagingTemplate.setJmsTemplate(this.jmsTemplate); |
| 115 | + messagingTemplate.afterPropertiesSet(); |
| 116 | + assertPayloadConverter(messagingTemplate, customMessageConverter); |
| 117 | + } |
| 118 | + |
| 119 | + private void assertPayloadConverter(JmsMessagingTemplate messagingTemplate, |
| 120 | + MessageConverter messageConverter) { |
| 121 | + MessageConverter jmsMessageConverter = messagingTemplate.getJmsMessageConverter(); |
| 122 | + assertNotNull(jmsMessageConverter); |
| 123 | + assertEquals(MessagingMessageConverter.class, jmsMessageConverter.getClass()); |
| 124 | + assertSame(messageConverter, new DirectFieldAccessor(jmsMessageConverter) |
| 125 | + .getPropertyValue("payloadConverter")); |
| 126 | + } |
| 127 | + |
86 | 128 | @Test |
87 | 129 | public void send() { |
88 | 130 | Destination destination = new Destination() {}; |
|
0 commit comments