Skip to content

Commit da5c8c7

Browse files
authored
Merge pull request #28 from jupiter-tools/improve-asserting-jms-message
Improve asserting jms message
2 parents 01f252c + 4440ef8 commit da5c8c7

File tree

33 files changed

+323
-361
lines changed

33 files changed

+323
-361
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ script:
88
addons:
99
sonarcloud:
1010
organization: "antkorwin-github"
11-
token:
12-
secure: $SONAR_CLOUD_KEY
11+
token: $SONAR_CLOUD_KEY
1312

1413
after_success:
1514
- mvn cobertura:cobertura

pom.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,17 @@
6565
</repository>
6666
</distributionManagement>
6767

68+
<repositories>
69+
<repository>
70+
<id>jitpack.io</id>
71+
<url>https://jitpack.io</url>
72+
</repository>
73+
</repositories>
74+
6875
<parent>
6976
<groupId>org.springframework.boot</groupId>
7077
<artifactId>spring-boot-starter-parent</artifactId>
71-
<version>[2.0.0.RELEASE,2.1.6.RELEASE]</version>
78+
<version>[2.0.0.RELEASE,2.3.0.RELEASE]</version>
7279
<relativePath/>
7380
</parent>
7481

@@ -204,9 +211,10 @@
204211
<plugin>
205212
<groupId>org.apache.maven.plugins</groupId>
206213
<artifactId>maven-javadoc-plugin</artifactId>
207-
<version>2.9.1</version>
214+
<version>2.10.4</version>
208215
<configuration>
209216
<additionalparam>-Xdoclint:none</additionalparam>
217+
<source>1.8</source>
210218
</configuration>
211219
<executions>
212220
<execution>

spring-test-activemq/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111

1212
<artifactId>spring-test-activemq</artifactId>
13-
<version>0.3</version>
13+
<version>${parent.version}</version>
1414
<packaging>jar</packaging>
1515

1616
<name>spring-test-activemq</name>
@@ -28,7 +28,7 @@
2828
<dependency>
2929
<groupId>com.jupiter-tools</groupId>
3030
<artifactId>spring-test-core</artifactId>
31-
<version>0.3</version>
31+
<version>${parent.version}</version>
3232
</dependency>
3333
<!-- CORE -->
3434

spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/ActiveMqMessageExtension.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44

55
import com.jupiter.tools.spring.test.activemq.annotation.ExpectedMessage;
66
import org.apache.activemq.command.ActiveMQTextMessage;
7+
import org.junit.jupiter.api.Assertions;
78
import org.junit.jupiter.api.extension.AfterEachCallback;
89
import org.junit.jupiter.api.extension.BeforeAllCallback;
910
import org.junit.jupiter.api.extension.ExtensionContext;
1011

1112
import org.springframework.jms.core.JmsTemplate;
1213
import org.springframework.test.context.junit.jupiter.SpringExtension;
1314

14-
import static org.assertj.core.api.Assertions.assertThat;
15-
1615
/**
1716
* Created on 22.01.2019.
1817
*
@@ -27,14 +26,17 @@ public void afterEach(ExtensionContext context) throws Exception {
2726

2827
ExpectedMessage expectedMessage = context.getRequiredTestMethod()
2928
.getAnnotation(ExpectedMessage.class);
30-
3129
if(expectedMessage ==null){
3230
return;
3331
}
3432

3533
jmsTemplate.setReceiveTimeout(expectedMessage.timeout());
3634
Message message = jmsTemplate.receive(expectedMessage.queue());
37-
assertThat(((ActiveMQTextMessage) message).getText()).isEqualTo(expectedMessage.message());
35+
36+
if(message == null){
37+
throw new Error(String.format("Expected but not received: %s", expectedMessage.message()));
38+
}
39+
Assertions.assertEquals(((ActiveMQTextMessage) message).getText(), expectedMessage.message());
3840
}
3941

4042
@Override

spring-test-activemq/src/main/java/com/jupiter/tools/spring/test/activemq/extension/expected/list/messages/ExpectedMessagesMapper.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public ExpectedMessagesOptions getOptions() {
2222
return ExpectedMessagesOptions.builder()
2323
.messagesFile(expectedMessages.messagesFile())
2424
.queue(expectedMessages.queue())
25-
.ignoreUnexpected(expectedMessages.ignoreUnexpected())
2625
.timeout(expectedMessages.timeout())
2726
.build();
2827
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.jupiter.tools.spring.test.activemq.extension;
2+
3+
import java.util.Date;
4+
5+
import com.jupiter.tools.spring.test.activemq.annotation.ExpectedMessages;
6+
import com.jupiter.tools.spring.test.activemq.annotation.meta.EnableActiveMqTest;
7+
import com.jupiter.tools.spring.test.activemq.extension.expected.Foo;
8+
import com.jupiter.tools.spring.test.activemq.extension.expected.FooWithBar;
9+
import org.junit.jupiter.api.Test;
10+
11+
import org.springframework.amqp.core.Queue;
12+
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.context.TestConfiguration;
14+
import org.springframework.context.annotation.Bean;
15+
import org.springframework.jms.core.JmsTemplate;
16+
import org.springframework.jms.support.converter.MappingJackson2MessageConverter;
17+
import org.springframework.jms.support.converter.MessageConverter;
18+
import org.springframework.jms.support.converter.MessageType;
19+
20+
/**
21+
* Created on 25.03.2019.
22+
*
23+
* @author Korovin Anatoliy
24+
*/
25+
@EnableActiveMqTest
26+
public class ActiveMqSmartDataSetTest {
27+
28+
@Autowired
29+
private JmsTemplate jmsTemplate;
30+
31+
@Test
32+
@ExpectedMessages(queue = "test-queue", messagesFile = "/datasets/expected_messages.json")
33+
void testSendListOfMessages() {
34+
jmsTemplate.convertAndSend("test-queue", new Foo("123"));
35+
jmsTemplate.convertAndSend("test-queue", new Foo("456"));
36+
jmsTemplate.convertAndSend("test-queue", new Foo("789"));
37+
}
38+
39+
@Test
40+
@ExpectedMessages(queue = "test-queue", messagesFile = "/datasets/expected_messages_with_js.json")
41+
void testExpectedDataSetWithJavaScript() {
42+
jmsTemplate.convertAndSend("test-queue", new Foo( String.valueOf(1+2+3+4+5)));
43+
}
44+
45+
@Test
46+
@ExpectedMessages(queue = "test-queue", messagesFile = "/datasets/expected_messages_with_date.json")
47+
void testExpectedWithDate() {
48+
// Arrange
49+
FooWithBar fooWithBar = FooWithBar.builder()
50+
// NOW
51+
.time(new Date())
52+
.build();
53+
// Act
54+
jmsTemplate.convertAndSend("test-queue", fooWithBar);
55+
}
56+
57+
@TestConfiguration
58+
public static class TestConfig {
59+
@Bean
60+
public Queue testQueue() {
61+
return new Queue("test-queue");
62+
}
63+
64+
@Bean // Serialize message content to json using TextMessage
65+
public MessageConverter jacksonJmsMessageConverter() {
66+
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
67+
converter.setTargetType(MessageType.TEXT);
68+
converter.setTypeIdPropertyName("_type");
69+
return converter;
70+
}
71+
}
72+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.jupiter.tools.spring.test.activemq.extension.expected;
2+
3+
4+
import java.util.Date;
5+
6+
import lombok.AllArgsConstructor;
7+
import lombok.Builder;
8+
import lombok.Getter;
9+
import lombok.NoArgsConstructor;
10+
import lombok.Setter;
11+
12+
13+
/**
14+
* Created on 07.02.2019
15+
*
16+
* @author Korovin Anatoliy
17+
*/
18+
@Getter
19+
@Setter
20+
@Builder
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
public class FooWithBar {
24+
Foo foo;
25+
Bar bar;
26+
FooWithBar child;
27+
Date time;
28+
}

spring-test-activemq/src/test/java/com/jupiter/tools/spring/test/activemq/extension/expected/list/messages/ExpectedListOfMessagesTest.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,6 @@ void sendMultipleTypes() {
5050
jmsTemplate.convertAndSend("test-queue", new Bar("CCC",3));
5151
}
5252

53-
@Test
54-
@ExpectedMessages(queue = "test-queue", messagesFile = "/datasets/expected_messages.json", ignoreUnexpected = true)
55-
void testIgnoreUnexpected() {
56-
jmsTemplate.convertAndSend("test-queue", new Foo("UNEXPECTED"));
57-
jmsTemplate.convertAndSend("test-queue", new Foo("123"));
58-
jmsTemplate.convertAndSend("test-queue", new Foo("456"));
59-
jmsTemplate.convertAndSend("test-queue", new Foo("789"));
60-
}
61-
6253
@TestConfiguration
6354
public static class TestConfig {
6455
@Bean
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"com.jupiter.tools.spring.test.activemq.extension.expected.FooWithBar": [
3+
{
4+
"time": "date-match:[NOW]"
5+
}
6+
]
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"com.jupiter.tools.spring.test.activemq.extension.expected.Foo": [
3+
{
4+
"value":"js-match: value == 1+2+3+4+5"
5+
}
6+
]
7+
}

0 commit comments

Comments
 (0)