From 6b981925686691e801202bd2f35e8ef0436d7727 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 13 May 2021 10:22:57 -0400 Subject: [PATCH] Increase timeout in fluky aggregator test * Rework `DefaultMessageAggregatorIntegrationTests` to Junit 5 * Add `@DirtiesContext` to release a `TaskScheduler` resources when the `ApplicationContext` is closed --- ...sageAggregatorIntegrationTests-context.xml | 2 - ...aultMessageAggregatorIntegrationTests.java | 43 ++++++++----------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests-context.xml index c76f1630d9..785f5222f3 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests-context.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests-context.xml @@ -7,8 +7,6 @@ http://www.springframework.org/schema/task https://www.springframework.org/schema/task/spring-task.xsd http://www.springframework.org/schema/integration https://www.springframework.org/schema/integration/spring-integration.xsd"> - - diff --git a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests.java b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests.java index cceb49c762..f2a62cf4c6 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/integration/DefaultMessageAggregatorIntegrationTests.java @@ -19,21 +19,18 @@ package org.springframework.integration.aggregator.integration; import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.integration.IntegrationMessageHeaderAccessor; +import org.springframework.integration.support.MessageBuilder; +import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.PollableChannel; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; /** * @author Alex Peters @@ -41,8 +38,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; * @author Gunnar Hillert * @author Artem Bilan */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration +@SpringJUnitConfig +@DirtiesContext public class DefaultMessageAggregatorIntegrationTests { @Autowired @@ -53,26 +50,24 @@ public class DefaultMessageAggregatorIntegrationTests { @Qualifier("output") private PollableChannel output; - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Test(timeout = 10000) + @Test public void testAggregation() { for (int i = 0; i < 5; i++) { - Map headers = stubHeaders(i, 5, 1); - this.input.send(new GenericMessage<>(i, headers)); + this.input.send(prepareSequenceMessage(i, 5, 1)); } - Object payload = this.output.receive().getPayload(); - assertThat(payload).isInstanceOf(List.class); - assertThat(((List) payload).containsAll(Arrays.asList(0, 1, 2, 3, 4))) - .as(payload + " doesn't contain all of {0,1,2,3,4}").isTrue(); + Object payload = this.output.receive(20_000).getPayload(); + assertThat(payload).isInstanceOf(List.class) + .asList() + .containsAll(Arrays.asList(0, 1, 2, 3, 4)); } - private Map stubHeaders(int sequenceNumber, int sequenceSize, int correllationId) { - Map headers = new HashMap<>(); - headers.put(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, sequenceNumber); - headers.put(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE, sequenceSize); - headers.put(IntegrationMessageHeaderAccessor.CORRELATION_ID, correllationId); - return headers; + private static Message prepareSequenceMessage(int sequenceNumber, int sequenceSize, int correlationId) { + return MessageBuilder.withPayload(sequenceNumber) + .setSequenceNumber(sequenceNumber) + .setSequenceSize(sequenceSize) + .setCorrelationId(correlationId) + .build(); } }