Polish
This commit is contained in:
parent
01933f9b06
commit
0cb6a7f47d
|
|
@ -15,8 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package org.springframework.boot.actuate.autoconfigure.web.server;
|
package org.springframework.boot.actuate.autoconfigure.web.server;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.function.Consumer;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
@ -30,6 +29,7 @@ import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||||
import org.springframework.boot.test.system.CapturedOutput;
|
import org.springframework.boot.test.system.CapturedOutput;
|
||||||
import org.springframework.boot.test.system.OutputCaptureExtension;
|
import org.springframework.boot.test.system.OutputCaptureExtension;
|
||||||
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
|
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
|
@ -51,16 +51,14 @@ class ManagementContextAutoConfigurationTests {
|
||||||
ServletManagementContextAutoConfiguration.class, WebEndpointAutoConfiguration.class,
|
ServletManagementContextAutoConfiguration.class, WebEndpointAutoConfiguration.class,
|
||||||
EndpointAutoConfiguration.class));
|
EndpointAutoConfiguration.class));
|
||||||
contextRunner.withPropertyValues("server.port=0", "management.server.port=0")
|
contextRunner.withPropertyValues("server.port=0", "management.server.port=0")
|
||||||
.run((context) -> assertThat(tomcatStartedOccurencesIn(output)).isEqualTo(2));
|
.run((context) -> assertThat(output).satisfies(numberOfOccurrences("Tomcat started on port", 2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private int tomcatStartedOccurencesIn(CharSequence output) {
|
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
|
||||||
int matches = 0;
|
return (charSequence) -> {
|
||||||
Matcher matcher = Pattern.compile("Tomcat started on port").matcher(output);
|
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
|
||||||
while (matcher.find()) {
|
assertThat(count).isEqualTo(expectedCount);
|
||||||
matches++;
|
};
|
||||||
}
|
|
||||||
return matches;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@
|
||||||
|
|
||||||
package org.springframework.boot.autoconfigure.security.servlet;
|
package org.springframework.boot.autoconfigure.security.servlet;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonParser;
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
||||||
|
|
@ -45,6 +48,8 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integration test to ensure {@link SecurityFilterAutoConfiguration} doesn't cause early
|
* Integration test to ensure {@link SecurityFilterAutoConfiguration} doesn't cause early
|
||||||
* initialization.
|
* initialization.
|
||||||
|
|
@ -54,6 +59,9 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
@ExtendWith(OutputCaptureExtension.class)
|
@ExtendWith(OutputCaptureExtension.class)
|
||||||
class SecurityFilterAutoConfigurationEarlyInitializationTests {
|
class SecurityFilterAutoConfigurationEarlyInitializationTests {
|
||||||
|
|
||||||
|
private static final Pattern PASSWORD_PATTERN = Pattern.compile("^Using generated security password: (.*)$",
|
||||||
|
Pattern.MULTILINE);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSecurityFilterDoesNotCauseEarlyInitialization(CapturedOutput output) {
|
void testSecurityFilterDoesNotCauseEarlyInitialization(CapturedOutput output) {
|
||||||
try (AnnotationConfigServletWebServerApplicationContext context = new AnnotationConfigServletWebServerApplicationContext()) {
|
try (AnnotationConfigServletWebServerApplicationContext context = new AnnotationConfigServletWebServerApplicationContext()) {
|
||||||
|
|
@ -61,8 +69,9 @@ class SecurityFilterAutoConfigurationEarlyInitializationTests {
|
||||||
context.register(Config.class);
|
context.register(Config.class);
|
||||||
context.refresh();
|
context.refresh();
|
||||||
int port = context.getWebServer().getPort();
|
int port = context.getWebServer().getPort();
|
||||||
String password = output.toString().split("Using generated security password: ")[1].split("\n")[0].trim();
|
Matcher password = PASSWORD_PATTERN.matcher(output);
|
||||||
new TestRestTemplate("user", password).getForEntity("http://localhost:" + port, Object.class);
|
assertThat(password.find()).isTrue();
|
||||||
|
new TestRestTemplate("user", password.group(1)).getForEntity("http://localhost:" + port, Object.class);
|
||||||
// If early initialization occurred a ConverterNotFoundException is thrown
|
// If early initialization occurred a ConverterNotFoundException is thrown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,7 @@ public class DuplicateJsonObjectContextCustomizerFactoryTests {
|
||||||
public void warningForMultipleVersions() {
|
public void warningForMultipleVersions() {
|
||||||
new DuplicateJsonObjectContextCustomizerFactory().createContextCustomizer(null, null).customizeContext(null,
|
new DuplicateJsonObjectContextCustomizerFactory().createContextCustomizer(null, null).customizeContext(null,
|
||||||
null);
|
null);
|
||||||
assertThat(this.output.toString())
|
assertThat(this.output).contains("Found multiple occurrences of org.json.JSONObject on the class path:");
|
||||||
.contains("Found multiple occurrences of org.json.JSONObject on the class path:");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,12 +16,14 @@
|
||||||
|
|
||||||
package smoketest.atomikos;
|
package smoketest.atomikos;
|
||||||
|
|
||||||
import org.assertj.core.api.Condition;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
||||||
import org.springframework.boot.test.system.CapturedOutput;
|
import org.springframework.boot.test.system.CapturedOutput;
|
||||||
import org.springframework.boot.test.system.OutputCaptureExtension;
|
import org.springframework.boot.test.system.OutputCaptureExtension;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
|
@ -36,24 +38,16 @@ class SampleAtomikosApplicationTests {
|
||||||
@Test
|
@Test
|
||||||
void testTransactionRollback(CapturedOutput output) throws Exception {
|
void testTransactionRollback(CapturedOutput output) throws Exception {
|
||||||
SampleAtomikosApplication.main(new String[] {});
|
SampleAtomikosApplication.main(new String[] {});
|
||||||
assertThat(output.toString()).has(substring(1, "---->")).has(substring(1, "----> josh"))
|
assertThat(output).satisfies(numberOfOccurrences("---->", 1));
|
||||||
.has(substring(2, "Count is 1")).has(substring(1, "Simulated error"));
|
assertThat(output).satisfies(numberOfOccurrences("----> josh", 1));
|
||||||
|
assertThat(output).satisfies(numberOfOccurrences("Count is 1", 2));
|
||||||
|
assertThat(output).satisfies(numberOfOccurrences("Simulated error", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Condition<String> substring(int times, String substring) {
|
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
|
||||||
return new Condition<String>("containing '" + substring + "' " + times + " times") {
|
return (charSequence) -> {
|
||||||
|
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
|
||||||
@Override
|
assertThat(count).isEqualTo(expectedCount);
|
||||||
public boolean matches(String value) {
|
|
||||||
int i = 0;
|
|
||||||
while (value.contains(substring)) {
|
|
||||||
int beginIndex = value.indexOf(substring) + substring.length();
|
|
||||||
value = value.substring(beginIndex);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return i == times;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,9 @@
|
||||||
|
|
||||||
package smoketest.bitronix;
|
package smoketest.bitronix;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import bitronix.tm.resource.jms.PoolingConnectionFactory;
|
import bitronix.tm.resource.jms.PoolingConnectionFactory;
|
||||||
import org.assertj.core.api.Condition;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.test.system.CapturedOutput;
|
import org.springframework.boot.test.system.CapturedOutput;
|
||||||
import org.springframework.boot.test.system.OutputCaptureExtension;
|
import org.springframework.boot.test.system.OutputCaptureExtension;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
|
@ -39,8 +41,10 @@ class SampleBitronixApplicationTests {
|
||||||
@Test
|
@Test
|
||||||
void testTransactionRollback(CapturedOutput output) throws Exception {
|
void testTransactionRollback(CapturedOutput output) throws Exception {
|
||||||
SampleBitronixApplication.main(new String[] {});
|
SampleBitronixApplication.main(new String[] {});
|
||||||
assertThat(output.toString()).has(substring(1, "---->")).has(substring(1, "----> josh"))
|
assertThat(output).satisfies(numberOfOccurrences("---->", 1));
|
||||||
.has(substring(2, "Count is 1")).has(substring(1, "Simulated error"));
|
assertThat(output).satisfies(numberOfOccurrences("----> josh", 1));
|
||||||
|
assertThat(output).satisfies(numberOfOccurrences("Count is 1", 2));
|
||||||
|
assertThat(output).satisfies(numberOfOccurrences("Simulated error", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -54,20 +58,10 @@ class SampleBitronixApplicationTests {
|
||||||
assertThat(nonXaJmsConnectionFactory).isNotInstanceOf(PoolingConnectionFactory.class);
|
assertThat(nonXaJmsConnectionFactory).isNotInstanceOf(PoolingConnectionFactory.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Condition<String> substring(int times, String substring) {
|
private <T extends CharSequence> Consumer<T> numberOfOccurrences(String substring, int expectedCount) {
|
||||||
return new Condition<String>("containing '" + substring + "' " + times + " times") {
|
return (charSequence) -> {
|
||||||
|
int count = StringUtils.countOccurrencesOf(charSequence.toString(), substring);
|
||||||
@Override
|
assertThat(count).isEqualTo(expectedCount);
|
||||||
public boolean matches(String value) {
|
|
||||||
int i = 0;
|
|
||||||
while (value.contains(substring)) {
|
|
||||||
int beginIndex = value.indexOf(substring) + substring.length();
|
|
||||||
value = value.substring(beginIndex);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return i == times;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue