Skip to content

Commit 0cb6a7f

Browse files
committed
Polish
1 parent 01933f9 commit 0cb6a7f

File tree

5 files changed

+42
-48
lines changed

5 files changed

+42
-48
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/server/ManagementContextAutoConfigurationTests.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
*/
1616
package org.springframework.boot.actuate.autoconfigure.web.server;
1717

18-
import java.util.regex.Matcher;
19-
import java.util.regex.Pattern;
18+
import java.util.function.Consumer;
2019

2120
import org.junit.jupiter.api.Test;
2221
import org.junit.jupiter.api.extension.ExtendWith;
@@ -30,6 +29,7 @@
3029
import org.springframework.boot.test.system.CapturedOutput;
3130
import org.springframework.boot.test.system.OutputCaptureExtension;
3231
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
32+
import org.springframework.util.StringUtils;
3333

3434
import static org.assertj.core.api.Assertions.assertThat;
3535

@@ -51,16 +51,14 @@ void childManagementContextShouldStartForEmbeddedServer(CapturedOutput output) {
5151
ServletManagementContextAutoConfiguration.class, WebEndpointAutoConfiguration.class,
5252
EndpointAutoConfiguration.class));
5353
contextRunner.withPropertyValues("server.port=0", "management.server.port=0")
54-
.run((context) -> assertThat(tomcatStartedOccurencesIn(output)).isEqualTo(2));
54+
.run((context) -> assertThat(output).satisfies(numberOfOccurrences("Tomcat started on port", 2)));
5555
}
5656

57-
private int tomcatStartedOccurencesIn(CharSequence output) {
58-
int matches = 0;
59-
Matcher matcher = Pattern.compile("Tomcat started on port").matcher(output);
60-
while (matcher.find()) {
61-
matches++;
62-
}
63-
return matches;
57+
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
58+
return (charSequence) -> {
59+
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
60+
assertThat(count).isEqualTo(expectedCount);
61+
};
6462
}
6563

6664
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfigurationEarlyInitializationTests.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.boot.autoconfigure.security.servlet;
1818

19+
import java.util.regex.Matcher;
20+
import java.util.regex.Pattern;
21+
1922
import com.fasterxml.jackson.core.JsonParser;
2023
import com.fasterxml.jackson.databind.DeserializationContext;
2124
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
@@ -45,6 +48,8 @@
4548
import org.springframework.web.bind.annotation.RequestMapping;
4649
import org.springframework.web.bind.annotation.RestController;
4750

51+
import static org.assertj.core.api.Assertions.assertThat;
52+
4853
/**
4954
* Integration test to ensure {@link SecurityFilterAutoConfiguration} doesn't cause early
5055
* initialization.
@@ -54,15 +59,19 @@
5459
@ExtendWith(OutputCaptureExtension.class)
5560
class SecurityFilterAutoConfigurationEarlyInitializationTests {
5661

62+
private static final Pattern PASSWORD_PATTERN = Pattern.compile("^Using generated security password: (.*)$",
63+
Pattern.MULTILINE);
64+
5765
@Test
5866
void testSecurityFilterDoesNotCauseEarlyInitialization(CapturedOutput output) {
5967
try (AnnotationConfigServletWebServerApplicationContext context = new AnnotationConfigServletWebServerApplicationContext()) {
6068
TestPropertyValues.of("server.port:0").applyTo(context);
6169
context.register(Config.class);
6270
context.refresh();
6371
int port = context.getWebServer().getPort();
64-
String password = output.toString().split("Using generated security password: ")[1].split("\n")[0].trim();
65-
new TestRestTemplate("user", password).getForEntity("http://localhost:" + port, Object.class);
72+
Matcher password = PASSWORD_PATTERN.matcher(output);
73+
assertThat(password.find()).isTrue();
74+
new TestRestTemplate("user", password.group(1)).getForEntity("http://localhost:" + port, Object.class);
6675
// If early initialization occurred a ConverterNotFoundException is thrown
6776
}
6877
}

spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/json/DuplicateJsonObjectContextCustomizerFactoryTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ public class DuplicateJsonObjectContextCustomizerFactoryTests {
4242
public void warningForMultipleVersions() {
4343
new DuplicateJsonObjectContextCustomizerFactory().createContextCustomizer(null, null).customizeContext(null,
4444
null);
45-
assertThat(this.output.toString())
46-
.contains("Found multiple occurrences of org.json.JSONObject on the class path:");
45+
assertThat(this.output).contains("Found multiple occurrences of org.json.JSONObject on the class path:");
4746
}
4847

4948
}

spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jta-atomikos/src/test/java/smoketest/atomikos/SampleAtomikosApplicationTests.java

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616

1717
package smoketest.atomikos;
1818

19-
import org.assertj.core.api.Condition;
19+
import java.util.function.Consumer;
20+
2021
import org.junit.jupiter.api.Test;
2122
import org.junit.jupiter.api.extension.ExtendWith;
2223

2324
import org.springframework.boot.test.system.CapturedOutput;
2425
import org.springframework.boot.test.system.OutputCaptureExtension;
26+
import org.springframework.util.StringUtils;
2527

2628
import static org.assertj.core.api.Assertions.assertThat;
2729

@@ -36,24 +38,16 @@ class SampleAtomikosApplicationTests {
3638
@Test
3739
void testTransactionRollback(CapturedOutput output) throws Exception {
3840
SampleAtomikosApplication.main(new String[] {});
39-
assertThat(output.toString()).has(substring(1, "---->")).has(substring(1, "----> josh"))
40-
.has(substring(2, "Count is 1")).has(substring(1, "Simulated error"));
41+
assertThat(output).satisfies(numberOfOccurrences("---->", 1));
42+
assertThat(output).satisfies(numberOfOccurrences("----> josh", 1));
43+
assertThat(output).satisfies(numberOfOccurrences("Count is 1", 2));
44+
assertThat(output).satisfies(numberOfOccurrences("Simulated error", 1));
4145
}
4246

43-
private Condition<String> substring(int times, String substring) {
44-
return new Condition<String>("containing '" + substring + "' " + times + " times") {
45-
46-
@Override
47-
public boolean matches(String value) {
48-
int i = 0;
49-
while (value.contains(substring)) {
50-
int beginIndex = value.indexOf(substring) + substring.length();
51-
value = value.substring(beginIndex);
52-
i++;
53-
}
54-
return i == times;
55-
}
56-
47+
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
48+
return (charSequence) -> {
49+
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
50+
assertThat(count).isEqualTo(expectedCount);
5751
};
5852
}
5953

spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jta-bitronix/src/test/java/smoketest/bitronix/SampleBitronixApplicationTests.java

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@
1616

1717
package smoketest.bitronix;
1818

19+
import java.util.function.Consumer;
20+
1921
import bitronix.tm.resource.jms.PoolingConnectionFactory;
20-
import org.assertj.core.api.Condition;
2122
import org.junit.jupiter.api.Test;
2223
import org.junit.jupiter.api.extension.ExtendWith;
2324

2425
import org.springframework.boot.SpringApplication;
2526
import org.springframework.boot.test.system.CapturedOutput;
2627
import org.springframework.boot.test.system.OutputCaptureExtension;
2728
import org.springframework.context.ApplicationContext;
29+
import org.springframework.util.StringUtils;
2830

2931
import static org.assertj.core.api.Assertions.assertThat;
3032

@@ -39,8 +41,10 @@ class SampleBitronixApplicationTests {
3941
@Test
4042
void testTransactionRollback(CapturedOutput output) throws Exception {
4143
SampleBitronixApplication.main(new String[] {});
42-
assertThat(output.toString()).has(substring(1, "---->")).has(substring(1, "----> josh"))
43-
.has(substring(2, "Count is 1")).has(substring(1, "Simulated error"));
44+
assertThat(output).satisfies(numberOfOccurrences("---->", 1));
45+
assertThat(output).satisfies(numberOfOccurrences("----> josh", 1));
46+
assertThat(output).satisfies(numberOfOccurrences("Count is 1", 2));
47+
assertThat(output).satisfies(numberOfOccurrences("Simulated error", 1));
4448
}
4549

4650
@Test
@@ -54,20 +58,10 @@ void testExposesXaAndNonXa() {
5458
assertThat(nonXaJmsConnectionFactory).isNotInstanceOf(PoolingConnectionFactory.class);
5559
}
5660

57-
private Condition<String> substring(int times, String substring) {
58-
return new Condition<String>("containing '" + substring + "' " + times + " times") {
59-
60-
@Override
61-
public boolean matches(String value) {
62-
int i = 0;
63-
while (value.contains(substring)) {
64-
int beginIndex = value.indexOf(substring) + substring.length();
65-
value = value.substring(beginIndex);
66-
i++;
67-
}
68-
return i == times;
69-
}
70-
61+
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
62+
return (charSequence) -> {
63+
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
64+
assertThat(count).isEqualTo(expectedCount);
7165
};
7266
}
7367

0 commit comments

Comments
 (0)