Commit 53626330 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '2.3.x' into 2.4.x

Closes gh-24973
parents 69fbd2f8 0b06ac99
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -336,7 +336,7 @@ class LiquibaseAutoConfigurationTests { ...@@ -336,7 +336,7 @@ class LiquibaseAutoConfigurationTests {
.withPropertyValues("spring.liquibase.parameters.foo:bar").run(assertLiquibase((liquibase) -> { .withPropertyValues("spring.liquibase.parameters.foo:bar").run(assertLiquibase((liquibase) -> {
Map<String, String> parameters = (Map<String, String>) ReflectionTestUtils.getField(liquibase, Map<String, String> parameters = (Map<String, String>) ReflectionTestUtils.getField(liquibase,
"parameters"); "parameters");
assertThat(parameters.containsKey("foo")).isTrue(); assertThat(parameters).containsKey("foo");
assertThat(parameters.get("foo")).isEqualTo("bar"); assertThat(parameters.get("foo")).isEqualTo("bar");
})); }));
} }
......
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -84,13 +84,13 @@ class BasicErrorControllerIntegrationTests { ...@@ -84,13 +84,13 @@ class BasicErrorControllerIntegrationTests {
} }
@Test @Test
@SuppressWarnings("rawtypes") @SuppressWarnings({ "rawtypes", "unchecked" })
void testErrorForMachineClientDefault() { void testErrorForMachineClientDefault() {
load(); load();
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("?trace=true"), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("?trace=true"), Map.class);
assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", null, "", "/"); assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", null, "", "/");
assertThat(entity.getBody().containsKey("exception")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("exception");
assertThat(entity.getBody().containsKey("trace")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("trace");
} }
@Test @Test
...@@ -144,19 +144,19 @@ class BasicErrorControllerIntegrationTests { ...@@ -144,19 +144,19 @@ class BasicErrorControllerIntegrationTests {
"No message available", "/noMessage"); "No message available", "/noMessage");
} }
@SuppressWarnings("rawtypes") @SuppressWarnings({ "rawtypes", "unchecked" })
private void exceptionWithStackTraceAndMessage(String path) { private void exceptionWithStackTraceAndMessage(String path) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl(path), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl(path), Map.class);
assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", IllegalStateException.class, assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", IllegalStateException.class,
"Expected!", "/"); "Expected!", "/");
assertThat(entity.getBody().containsKey("trace")).isTrue(); assertThat(entity.getBody()).containsKey("trace");
} }
@SuppressWarnings("rawtypes") @SuppressWarnings({ "rawtypes", "unchecked" })
private void exceptionWithoutStackTraceAndMessage(String path) { private void exceptionWithoutStackTraceAndMessage(String path) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl(path), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl(path), Map.class);
assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", IllegalStateException.class, "", "/"); assertErrorAttributes(entity.getBody(), "500", "Internal Server Error", IllegalStateException.class, "", "/");
assertThat(entity.getBody().containsKey("trace")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("trace");
} }
@Test @Test
...@@ -265,37 +265,37 @@ class BasicErrorControllerIntegrationTests { ...@@ -265,37 +265,37 @@ class BasicErrorControllerIntegrationTests {
bindingExceptionWithoutMessage("?message=true"); bindingExceptionWithoutMessage("?message=true");
} }
@SuppressWarnings({ "rawtypes" }) @SuppressWarnings({ "rawtypes", "unchecked" })
private void bindingExceptionWithErrors(String param) { private void bindingExceptionWithErrors(String param) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class);
assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind"); assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind");
assertThat(entity.getBody().containsKey("errors")).isTrue(); assertThat(entity.getBody()).containsKey("errors");
} }
@SuppressWarnings({ "rawtypes" }) @SuppressWarnings({ "rawtypes", "unchecked" })
private void bindingExceptionWithoutErrors(String param) { private void bindingExceptionWithoutErrors(String param) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class);
assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind"); assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind");
assertThat(entity.getBody().containsKey("errors")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("errors");
} }
@SuppressWarnings({ "rawtypes" }) @SuppressWarnings({ "rawtypes", "unchecked" })
private void bindingExceptionWithMessage(String param) { private void bindingExceptionWithMessage(String param) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class);
assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class,
"Validation failed for object='test'. Error count: 1", "/bind"); "Validation failed for object='test'. Error count: 1", "/bind");
assertThat(entity.getBody().containsKey("errors")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("errors");
} }
@SuppressWarnings({ "rawtypes" }) @SuppressWarnings({ "rawtypes", "unchecked" })
private void bindingExceptionWithoutMessage(String param) { private void bindingExceptionWithoutMessage(String param) {
ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class); ResponseEntity<Map> entity = new TestRestTemplate().getForEntity(createUrl("/bind" + param), Map.class);
assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind"); assertErrorAttributes(entity.getBody(), "400", "Bad Request", BindException.class, "", "/bind");
assertThat(entity.getBody().containsKey("errors")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("errors");
} }
@Test @Test
@SuppressWarnings("rawtypes") @SuppressWarnings({ "rawtypes", "unchecked" })
void testRequestBodyValidationForMachineClient() { void testRequestBodyValidationForMachineClient() {
load("--server.error.include-exception=true"); load("--server.error.include-exception=true");
RequestEntity request = RequestEntity.post(URI.create(createUrl("/bodyValidation"))) RequestEntity request = RequestEntity.post(URI.create(createUrl("/bodyValidation")))
...@@ -303,19 +303,19 @@ class BasicErrorControllerIntegrationTests { ...@@ -303,19 +303,19 @@ class BasicErrorControllerIntegrationTests {
ResponseEntity<Map> entity = new TestRestTemplate().exchange(request, Map.class); ResponseEntity<Map> entity = new TestRestTemplate().exchange(request, Map.class);
assertErrorAttributes(entity.getBody(), "400", "Bad Request", MethodArgumentNotValidException.class, "", assertErrorAttributes(entity.getBody(), "400", "Bad Request", MethodArgumentNotValidException.class, "",
"/bodyValidation"); "/bodyValidation");
assertThat(entity.getBody().containsKey("errors")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("errors");
} }
@Test @Test
@SuppressWarnings("rawtypes") @SuppressWarnings({ "rawtypes", "unchecked" })
void testBindingExceptionForMachineClientDefault() { void testBindingExceptionForMachineClientDefault() {
load(); load();
RequestEntity request = RequestEntity.get(URI.create(createUrl("/bind?trace=true,message=true"))) RequestEntity request = RequestEntity.get(URI.create(createUrl("/bind?trace=true,message=true")))
.accept(MediaType.APPLICATION_JSON).build(); .accept(MediaType.APPLICATION_JSON).build();
ResponseEntity<Map> entity = new TestRestTemplate().exchange(request, Map.class); ResponseEntity<Map> entity = new TestRestTemplate().exchange(request, Map.class);
assertThat(entity.getBody().containsKey("exception")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("exception");
assertThat(entity.getBody().containsKey("trace")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("trace");
assertThat(entity.getBody().containsKey("errors")).isFalse(); assertThat(entity.getBody()).doesNotContainKey("errors");
} }
@Test @Test
......
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -82,7 +82,7 @@ class FileSessionPersistenceTests { ...@@ -82,7 +82,7 @@ class FileSessionPersistenceTests {
this.persistence.persistSessions("test", sessionData); this.persistence.persistSessions("test", sessionData);
Map<String, PersistentSession> restored = this.persistence.loadSessionAttributes("test", this.classLoader); Map<String, PersistentSession> restored = this.persistence.loadSessionAttributes("test", this.classLoader);
assertThat(restored).isNotNull(); assertThat(restored).isNotNull();
assertThat(restored.containsKey("abc")).isFalse(); assertThat(restored).doesNotContainKey("abc");
} }
@Test @Test
......
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -269,8 +269,8 @@ class DefaultErrorAttributesTests { ...@@ -269,8 +269,8 @@ class DefaultErrorAttributesTests {
MockServerHttpRequest request = MockServerHttpRequest.get("/test").build(); MockServerHttpRequest request = MockServerHttpRequest.get("/test").build();
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(buildServerRequest(request, ex), Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(buildServerRequest(request, ex),
ErrorAttributeOptions.defaults()); ErrorAttributeOptions.defaults());
assertThat(attributes.get("message")).isEqualTo(""); assertThat(attributes).containsEntry("message", "");
assertThat(attributes.containsKey("errors")).isFalse(); assertThat(attributes).doesNotContainKey("errors");
} }
private ServerRequest buildServerRequest(MockServerHttpRequest request, Throwable error) { private ServerRequest buildServerRequest(MockServerHttpRequest request, Throwable error) {
......
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -90,7 +90,7 @@ class DefaultErrorAttributesTests { ...@@ -90,7 +90,7 @@ class DefaultErrorAttributesTests {
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex); assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex);
assertThat(modelAndView).isNull(); assertThat(modelAndView).isNull();
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test"); assertThat(attributes.get("message")).isEqualTo("Test");
} }
...@@ -101,7 +101,7 @@ class DefaultErrorAttributesTests { ...@@ -101,7 +101,7 @@ class DefaultErrorAttributesTests {
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex); assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex);
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test"); assertThat(attributes.get("message")).isEqualTo("Test");
} }
...@@ -112,7 +112,7 @@ class DefaultErrorAttributesTests { ...@@ -112,7 +112,7 @@ class DefaultErrorAttributesTests {
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.defaults()); ErrorAttributeOptions.defaults());
assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex); assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(ex);
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message").toString()).contains(""); assertThat(attributes.get("message").toString()).contains("");
} }
...@@ -121,7 +121,7 @@ class DefaultErrorAttributesTests { ...@@ -121,7 +121,7 @@ class DefaultErrorAttributesTests {
this.request.setAttribute("javax.servlet.error.message", "Test"); this.request.setAttribute("javax.servlet.error.message", "Test");
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test"); assertThat(attributes.get("message")).isEqualTo("Test");
} }
...@@ -130,7 +130,7 @@ class DefaultErrorAttributesTests { ...@@ -130,7 +130,7 @@ class DefaultErrorAttributesTests {
this.request.setAttribute("javax.servlet.error.message", "Test"); this.request.setAttribute("javax.servlet.error.message", "Test");
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.defaults()); ErrorAttributeOptions.defaults());
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).asString().contains(""); assertThat(attributes.get("message")).asString().contains("");
} }
...@@ -140,7 +140,7 @@ class DefaultErrorAttributesTests { ...@@ -140,7 +140,7 @@ class DefaultErrorAttributesTests {
this.request.setAttribute("javax.servlet.error.message", "Test"); this.request.setAttribute("javax.servlet.error.message", "Test");
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test"); assertThat(attributes.get("message")).isEqualTo("Test");
} }
...@@ -149,7 +149,7 @@ class DefaultErrorAttributesTests { ...@@ -149,7 +149,7 @@ class DefaultErrorAttributesTests {
this.request.setAttribute("javax.servlet.error.exception", new RuntimeException()); this.request.setAttribute("javax.servlet.error.exception", new RuntimeException());
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("No message available"); assertThat(attributes.get("message")).isEqualTo("No message available");
} }
...@@ -161,7 +161,7 @@ class DefaultErrorAttributesTests { ...@@ -161,7 +161,7 @@ class DefaultErrorAttributesTests {
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(wrapped); assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(wrapped);
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test"); assertThat(attributes.get("message")).isEqualTo("Test");
} }
...@@ -172,7 +172,7 @@ class DefaultErrorAttributesTests { ...@@ -172,7 +172,7 @@ class DefaultErrorAttributesTests {
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.of(Include.MESSAGE)); ErrorAttributeOptions.of(Include.MESSAGE));
assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(error); assertThat(this.errorAttributes.getError(this.webRequest)).isSameAs(error);
assertThat(attributes.containsKey("exception")).isFalse(); assertThat(attributes).doesNotContainKey("exception");
assertThat(attributes.get("message")).isEqualTo("Test error"); assertThat(attributes.get("message")).isEqualTo("Test error");
} }
...@@ -216,7 +216,7 @@ class DefaultErrorAttributesTests { ...@@ -216,7 +216,7 @@ class DefaultErrorAttributesTests {
assertThat(attributes.get("errors")).isEqualTo(bindingResult.getAllErrors()); assertThat(attributes.get("errors")).isEqualTo(bindingResult.getAllErrors());
} }
else { else {
assertThat(attributes.containsKey("errors")).isFalse(); assertThat(attributes).doesNotContainKey("errors");
} }
} }
...@@ -257,7 +257,7 @@ class DefaultErrorAttributesTests { ...@@ -257,7 +257,7 @@ class DefaultErrorAttributesTests {
this.request.setAttribute("javax.servlet.error.exception", ex); this.request.setAttribute("javax.servlet.error.exception", ex);
Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest, Map<String, Object> attributes = this.errorAttributes.getErrorAttributes(this.webRequest,
ErrorAttributeOptions.defaults()); ErrorAttributeOptions.defaults());
assertThat(attributes.containsKey("trace")).isFalse(); assertThat(attributes).doesNotContainKey("trace");
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment