Import mockito to mock when unit test
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/commit/b32619b6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/tree/b32619b6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/diff/b32619b6 Branch: refs/heads/jms-dev-1.1.0 Commit: b32619b67ab08cdf76b5d47aff868b97012c5eca Parents: 53cb534 Author: zhangke <zhangke_beij...@qq.com> Authored: Tue Feb 28 08:09:45 2017 +0800 Committer: zhangke <zhangke_beij...@qq.com> Committed: Tue Feb 28 08:09:45 2017 +0800 ---------------------------------------------------------------------- core/pom.xml | 4 ++++ .../org/apache/rocketmq/jms/RocketMQProducer.java | 4 ++++ .../apache/rocketmq/jms/hook/SendMessageHook.java | 6 ++++-- .../rocketmq/jms/hook/SendMessageHookTest.java | 18 +++++++++++++----- pom.xml | 6 ++++++ 5 files changed, 31 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b32619b6/core/pom.xml ---------------------------------------------------------------------- diff --git a/core/pom.xml b/core/pom.xml index 11d4471..e977b30 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -53,6 +53,10 @@ <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b32619b6/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java b/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java index 6b4f394..ab1eb69 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java +++ b/core/src/main/java/org/apache/rocketmq/jms/RocketMQProducer.java @@ -262,4 +262,8 @@ public class RocketMQProducer implements MessageProducer { public void setSendMessageHook(SendMessageHook sendMessageHook) { this.sendMessageHook = sendMessageHook; } + + public String getUserName() { + return this.session.getConnection().getUserName(); + } } http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b32619b6/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java b/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java index a20fb98..0429973 100644 --- a/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java +++ b/core/src/main/java/org/apache/rocketmq/jms/hook/SendMessageHook.java @@ -76,7 +76,7 @@ public class SendMessageHook { // messageID is also required in async model, so {@link MessageExt#getMsgId()} can't be used. if (!this.producer.getDisableMessageID()) { - message.setJMSMessageID(new StringBuffer(MESSAGE_ID_PREFIX).append(UUID.randomUUID().getLeastSignificantBits()).toString()); + message.setJMSMessageID(new StringBuffer(MESSAGE_ID_PREFIX).append(UUID.randomUUID().toString()).toString()); } // timestamp @@ -93,7 +93,9 @@ public class SendMessageHook { public void setProviderProperties(Message message) throws JMSException { // JMSXUserID - message.setStringProperty(JMSXUserID.name(), this.producer.getSession().getConnection().getUserName()); + if (this.producer.getUserName() != null) { + message.setStringProperty(JMSXUserID.name(), this.producer.getUserName()); + } } public void setProducer(RocketMQProducer producer) { http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b32619b6/core/src/test/java/org/apache/rocketmq/jms/hook/SendMessageHookTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/rocketmq/jms/hook/SendMessageHookTest.java b/core/src/test/java/org/apache/rocketmq/jms/hook/SendMessageHookTest.java index 2d1afcc..6af7786 100644 --- a/core/src/test/java/org/apache/rocketmq/jms/hook/SendMessageHookTest.java +++ b/core/src/test/java/org/apache/rocketmq/jms/hook/SendMessageHookTest.java @@ -24,6 +24,7 @@ import org.apache.rocketmq.jms.RocketMQTopic; import org.apache.rocketmq.jms.exception.UnsupportDeliveryModelException; import org.apache.rocketmq.jms.msg.JMSTextMessage; import org.apache.rocketmq.jms.msg.enums.JMSHeaderEnum; +import org.apache.rocketmq.jms.msg.enums.JMSPropertiesEnum; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -31,6 +32,8 @@ import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNull.notNullValue; import static org.hamcrest.core.IsNull.nullValue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class SendMessageHookTest { @@ -48,8 +51,8 @@ public class SendMessageHookTest { @Test public void testSetHeader() throws Exception { - RocketMQProducer producer = new RocketMQProducer(); - producer.setDeliveryDelay(0L); + RocketMQProducer producer = mock(RocketMQProducer.class); + when(producer.getDeliveryDelay()).thenReturn(0L); final JMSTextMessage message = new JMSTextMessage("text"); final Destination destination = new RocketMQTopic("destination"); @@ -75,9 +78,10 @@ public class SendMessageHookTest { */ @Test public void testSetHeader2() throws Exception { - RocketMQProducer producer = new RocketMQProducer(); - producer.setDisableMessageID(true); - producer.setDisableMessageTimestamp(true); + RocketMQProducer producer = mock(RocketMQProducer.class); + when(producer.getUserName()).thenReturn("user"); + when(producer.getDisableMessageID()).thenReturn(true); + when(producer.getDisableMessageTimestamp()).thenReturn(true); final JMSTextMessage message = new JMSTextMessage("text"); final Destination destination = new RocketMQTopic("destination"); @@ -87,8 +91,12 @@ public class SendMessageHookTest { SendMessageHook hook = new SendMessageHook(producer); hook.before(message, destination, deliveryMode, priority, timeToLive); + // assert header assertThat(message.getJMSMessageID(), nullValue()); assertThat(message.getJMSTimestamp(), is(0L)); assertThat(message.getJMSExpiration(), not(is(0L))); + + // assert properties + assertThat(message.getStringProperty(JMSPropertiesEnum.JMSXUserID.name()), is("user")); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b32619b6/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 2882a6b..9d0fd39 100644 --- a/pom.xml +++ b/pom.xml @@ -84,6 +84,12 @@ <version>1.3</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>2.7.12</version> + <scope>test</scope> + </dependency> </dependencies> </dependencyManagement>