Skip to content

Commit 6054e8b

Browse files
committed
More test clean up to minimize memory
Probably `@DirtiesContext` would remove application contexts for the JUnit cache
1 parent 201acf5 commit 6054e8b

File tree

12 files changed

+96
-115
lines changed

12 files changed

+96
-115
lines changed

spring-integration-core/src/test/java/org/springframework/integration/config/xml/BridgeParserTests.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,33 +16,34 @@
1616

1717
package org.springframework.integration.config.xml;
1818

19-
import org.junit.Test;
19+
import org.junit.jupiter.api.Test;
2020

21-
import org.springframework.beans.DirectFieldAccessor;
2221
import org.springframework.beans.factory.annotation.Autowired;
2322
import org.springframework.beans.factory.annotation.Qualifier;
2423
import org.springframework.integration.channel.QueueChannel;
25-
import org.springframework.integration.core.MessagingTemplate;
2624
import org.springframework.integration.endpoint.EventDrivenConsumer;
27-
import org.springframework.integration.handler.BridgeHandler;
2825
import org.springframework.integration.support.MessageBuilder;
2926
import org.springframework.integration.test.predicate.MessagePredicate;
27+
import org.springframework.integration.test.util.TestUtils;
3028
import org.springframework.messaging.Message;
3129
import org.springframework.messaging.MessageChannel;
3230
import org.springframework.messaging.MessagingException;
3331
import org.springframework.messaging.PollableChannel;
3432
import org.springframework.messaging.support.GenericMessage;
35-
import org.springframework.test.context.ContextConfiguration;
36-
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
33+
import org.springframework.test.annotation.DirtiesContext;
34+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3735

3836
import static org.assertj.core.api.Assertions.assertThat;
37+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
3938

4039
/**
4140
* @author Mark Fisher
4241
* @author Iwein Fuld
42+
* @author Artem Bilan
4343
*/
44-
@ContextConfiguration
45-
public class BridgeParserTests extends AbstractJUnit4SpringContextTests {
44+
@SpringJUnitConfig
45+
@DirtiesContext
46+
public class BridgeParserTests {
4647

4748
@Autowired
4849
@Qualifier("pollableChannel")
@@ -95,19 +96,17 @@ public void stopperWithReplyHeader() {
9596
assertThat(message).matches(new MessagePredicate(reply));
9697
}
9798

98-
@Test(expected = MessagingException.class)
99+
@Test
99100
public void stopperWithoutReplyHeader() {
100101
Message<?> message = MessageBuilder.withPayload("test3").build();
101-
this.stopperChannel.send(message);
102+
assertThatExceptionOfType(MessagingException.class)
103+
.isThrownBy(() -> this.stopperChannel.send(message));
102104
}
103105

104106
@Test
105107
public void bridgeWithSendTimeout() {
106-
BridgeHandler handler =
107-
(BridgeHandler) new DirectFieldAccessor(bridgeWithSendTimeout).getPropertyValue("handler");
108-
MessagingTemplate template =
109-
(MessagingTemplate) new DirectFieldAccessor(handler).getPropertyValue("messagingTemplate");
110-
assertThat(new DirectFieldAccessor(template).getPropertyValue("sendTimeout")).isEqualTo(1234L);
108+
assertThat(TestUtils.getPropertyValue(bridgeWithSendTimeout, "handler.messagingTemplate.sendTimeout"))
109+
.isEqualTo(1234L);
111110
}
112111

113112
}

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ClaimCheckParserTests.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
import java.util.UUID;
2020

21-
import org.junit.Test;
22-
import org.junit.runner.RunWith;
21+
import org.junit.jupiter.api.Test;
2322

2423
import org.springframework.beans.DirectFieldAccessor;
2524
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +32,8 @@
3332
import org.springframework.messaging.Message;
3433
import org.springframework.messaging.MessageChannel;
3534
import org.springframework.messaging.PollableChannel;
36-
import org.springframework.test.context.ContextConfiguration;
37-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
35+
import org.springframework.test.annotation.DirtiesContext;
36+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3837

3938
import static org.assertj.core.api.Assertions.assertThat;
4039

@@ -46,8 +45,8 @@
4645
*
4746
* @since 2.0
4847
*/
49-
@ContextConfiguration
50-
@RunWith(SpringJUnit4ClassRunner.class)
48+
@SpringJUnitConfig
49+
@DirtiesContext
5150
public class ClaimCheckParserTests {
5251

5352
@Autowired

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ConstructorAutowireTests.java

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,36 +17,52 @@
1717
package org.springframework.integration.config.xml;
1818

1919
import java.util.List;
20+
import java.util.concurrent.CountDownLatch;
21+
import java.util.concurrent.TimeUnit;
2022

21-
import org.junit.Test;
22-
import org.junit.runner.RunWith;
23+
import org.junit.jupiter.api.Test;
2324

2425
import org.springframework.beans.factory.annotation.Autowired;
25-
import org.springframework.test.context.ContextConfiguration;
26-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
26+
import org.springframework.test.annotation.DirtiesContext;
27+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
28+
29+
import static org.assertj.core.api.Assertions.assertThat;
2730

2831
/**
2932
* @author Jim Moore
3033
* @author Mark Fisher
34+
* @author Artem Bilan
3135
*/
32-
@ContextConfiguration
33-
@RunWith(SpringJUnit4ClassRunner.class)
36+
@SpringJUnitConfig
37+
@DirtiesContext
3438
public class ConstructorAutowireTests {
3539

36-
@Test // INT-568
37-
public void testApplicationContextCreation() {
40+
@Autowired
41+
TestService service;
42+
43+
@Autowired
44+
TestEndpoint testEndpoint;
45+
46+
@Test
47+
public void testApplicationContextCreation() throws InterruptedException {
48+
assertThat(this.testEndpoint.consumerLatch.await(10, TimeUnit.SECONDS)).isTrue();
49+
assertThat(this.testEndpoint.result).isEqualTo(this.service.getVal());
3850
}
3951

4052
public static class TestService {
4153

4254
public String getVal() {
43-
return "fooble";
55+
return "test data";
4456
}
4557

4658
}
4759

4860
public static class TestEndpoint {
4961

62+
private CountDownLatch consumerLatch = new CountDownLatch(1);
63+
64+
private String result;
65+
5066
private TestService service;
5167

5268
@Autowired
@@ -59,7 +75,8 @@ public String aProducer() {
5975
}
6076

6177
public void aConsumer(String str) {
62-
// ignore
78+
this.result = str;
79+
this.consumerLatch.countDown();
6380
}
6481

6582
public List<String> aSplitter(List<String> strs) {

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ContextHierarchyTests.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,41 +16,37 @@
1616

1717
package org.springframework.integration.config.xml;
1818

19-
import org.junit.Before;
2019
import org.junit.Test;
2120

2221
import org.springframework.beans.DirectFieldAccessor;
23-
import org.springframework.context.ApplicationContext;
22+
import org.springframework.context.ConfigurableApplicationContext;
2423
import org.springframework.context.support.ClassPathXmlApplicationContext;
2524

2625
import static org.assertj.core.api.Assertions.assertThat;
2726

2827
/**
2928
* @author Mark Fisher
29+
* @author Artem Bilan
3030
*/
3131
public class ContextHierarchyTests {
3232

33-
private ApplicationContext parentContext;
34-
35-
private ApplicationContext childContext;
36-
37-
@Before
38-
public void setupContext() {
33+
@Test
34+
public void inputChannelInParentContext() {
3935
String prefix = "/org/springframework/integration/config/xml/ContextHierarchyTests-";
40-
this.parentContext = new ClassPathXmlApplicationContext(prefix + "parent.xml");
41-
this.childContext = new ClassPathXmlApplicationContext(
36+
ConfigurableApplicationContext parentContext = new ClassPathXmlApplicationContext(prefix + "parent.xml");
37+
ConfigurableApplicationContext childContext = new ClassPathXmlApplicationContext(
4238
new String[] {prefix + "child.xml"}, parentContext);
43-
}
4439

45-
@Test // INT-646
46-
public void inputChannelInParentContext() {
4740
Object parentInput = parentContext.getBean("input");
4841
Object childInput = childContext.getBean("input");
4942
Object endpoint = childContext.getBean("chain");
5043
DirectFieldAccessor accessor = new DirectFieldAccessor(endpoint);
5144
Object endpointInput = accessor.getPropertyValue("inputChannel");
5245
assertThat(childInput).isEqualTo(parentInput);
5346
assertThat(endpointInput).isEqualTo(parentInput);
47+
48+
parentContext.close();
49+
childContext.close();
5450
}
5551

5652
}

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusChainTests.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
import java.util.Date;
2020

21-
import org.junit.Test;
22-
import org.junit.runner.RunWith;
21+
import org.junit.jupiter.api.Test;
2322

2423
import org.springframework.beans.factory.annotation.Autowired;
2524
import org.springframework.integration.support.MessageBuilder;
@@ -28,17 +27,17 @@
2827
import org.springframework.messaging.MessageChannel;
2928
import org.springframework.messaging.PollableChannel;
3029
import org.springframework.messaging.support.GenericMessage;
31-
import org.springframework.test.context.ContextConfiguration;
32-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
30+
import org.springframework.test.annotation.DirtiesContext;
31+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3332

3433
import static org.assertj.core.api.Assertions.assertThat;
3534

3635
/**
3736
* @author Mark Fisher
3837
* @author Artem Bilan
3938
*/
40-
@ContextConfiguration
41-
@RunWith(SpringJUnit4ClassRunner.class)
39+
@SpringJUnitConfig
40+
@DirtiesContext
4241
public class ControlBusChainTests {
4342

4443
@Autowired

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ConverterParserTests.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616

1717
package org.springframework.integration.config.xml;
1818

19-
import org.junit.Test;
20-
import org.junit.runner.RunWith;
19+
import org.junit.jupiter.api.Test;
2120

2221
import org.springframework.beans.factory.annotation.Autowired;
2322
import org.springframework.beans.factory.annotation.Qualifier;
@@ -27,17 +26,17 @@
2726
import org.springframework.messaging.Message;
2827
import org.springframework.messaging.MessageChannel;
2928
import org.springframework.messaging.PollableChannel;
30-
import org.springframework.test.context.ContextConfiguration;
31-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
29+
import org.springframework.test.annotation.DirtiesContext;
30+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3231

3332
import static org.assertj.core.api.Assertions.assertThat;
3433

3534
/**
3635
* @author Oleg Zhurakousky
3736
* @author Artem Bilan
3837
*/
39-
@ContextConfiguration
40-
@RunWith(SpringJUnit4ClassRunner.class)
38+
@SpringJUnitConfig
39+
@DirtiesContext
4140
public class ConverterParserTests {
4241

4342
@Autowired

spring-integration-core/src/test/java/org/springframework/integration/config/xml/ConverterParserWithExistingConversionServiceTests.java

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616

1717
package org.springframework.integration.config.xml;
1818

19-
import org.junit.Test;
20-
import org.junit.runner.RunWith;
19+
import org.junit.jupiter.api.Test;
2120

2221
import org.springframework.beans.factory.annotation.Autowired;
2322
import org.springframework.beans.factory.annotation.Qualifier;
@@ -28,8 +27,8 @@
2827
import org.springframework.core.convert.converter.Converter;
2928
import org.springframework.core.convert.support.GenericConversionService;
3029
import org.springframework.integration.support.utils.IntegrationUtils;
31-
import org.springframework.test.context.ContextConfiguration;
32-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
30+
import org.springframework.test.annotation.DirtiesContext;
31+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3332

3433
import static org.assertj.core.api.Assertions.assertThat;
3534

@@ -38,8 +37,8 @@
3837
* @author Artem Bilan
3938
*
4039
*/
41-
@ContextConfiguration
42-
@RunWith(SpringJUnit4ClassRunner.class)
40+
@SpringJUnitConfig
41+
@DirtiesContext
4342
public class ConverterParserWithExistingConversionServiceTests {
4443

4544
@Autowired
@@ -82,24 +81,11 @@ public void testParentConversionServiceAvailability() {
8281
parentContext.close();
8382
}
8483

85-
private static class TestBean1 {
86-
87-
private final String text;
88-
89-
@SuppressWarnings("unused")
90-
TestBean1(String text) {
91-
this.text = text;
92-
}
84+
private record TestBean1(String text) {
9385

9486
}
9587

96-
private static class TestBean2 {
97-
98-
private final String text;
99-
100-
TestBean2(String text) {
101-
this.text = text;
102-
}
88+
private record TestBean2(String text) {
10389

10490
// called by router for channel name
10591
@Override
@@ -109,13 +95,7 @@ public String toString() {
10995

11096
}
11197

112-
private static class TestBean3 {
113-
114-
private final String text;
115-
116-
TestBean3(String text) {
117-
this.text = text;
118-
}
98+
private record TestBean3(String text) {
11999

120100
// called by router for channel name
121101
@Override

spring-integration-core/src/test/java/org/springframework/integration/config/xml/CronTriggerParserTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,25 +16,25 @@
1616

1717
package org.springframework.integration.config.xml;
1818

19-
import org.junit.Test;
20-
import org.junit.runner.RunWith;
19+
import org.junit.jupiter.api.Test;
2120

2221
import org.springframework.beans.factory.annotation.Autowired;
2322
import org.springframework.context.ApplicationContext;
2423
import org.springframework.integration.scheduling.PollerMetadata;
2524
import org.springframework.integration.test.util.TestUtils;
2625
import org.springframework.scheduling.Trigger;
2726
import org.springframework.scheduling.support.CronTrigger;
28-
import org.springframework.test.context.ContextConfiguration;
29-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
27+
import org.springframework.test.annotation.DirtiesContext;
28+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3029

3130
import static org.assertj.core.api.Assertions.assertThat;
3231

3332
/**
3433
* @author Mark Fisher
34+
* @author Artem Bilan
3535
*/
36-
@ContextConfiguration
37-
@RunWith(SpringJUnit4ClassRunner.class)
36+
@SpringJUnitConfig
37+
@DirtiesContext
3838
public class CronTriggerParserTests {
3939

4040
@Autowired

0 commit comments

Comments
 (0)