Merge pull request #11809 from izeye:parameter-name

* pr/11809:
  Polish contribution
  Fix to assert parameter names in EndpointServlet.withInitParameters()
This commit is contained in:
Stephane Nicoll 2018-01-27 05:35:11 +01:00
commit c533cb28bc
2 changed files with 18 additions and 3 deletions

View File

@ -61,9 +61,9 @@ public final class EndpointServlet {
public EndpointServlet withInitParameters(Map<String, String> initParameters) {
Assert.notNull(initParameters, "InitParameters must not be null");
boolean hasEmptyKey = initParameters.values().stream()
.anyMatch((key) -> !StringUtils.hasText(key));
Assert.isTrue(!hasEmptyKey, "InitParameters must not contain empty keys");
boolean hasEmptyName = initParameters.keySet().stream()
.anyMatch((name) -> !StringUtils.hasText(name));
Assert.isTrue(!hasEmptyName, "InitParameters must not contain empty names");
Map<String, String> mergedInitParameters = new LinkedHashMap<>(
this.initParameters);
mergedInitParameters.putAll(initParameters);

View File

@ -38,6 +38,7 @@ import static org.assertj.core.api.Assertions.entry;
* Tests for {@link EndpointServlet}.
*
* @author Phillip Webb
* @author Stephane Nicoll
*/
public class EndpointServletTests {
@ -71,6 +72,20 @@ public class EndpointServletTests {
assertThat(endpointServlet.getServlet()).isEqualTo(servlet);
}
@Test
public void withInitParameterNullName() {
EndpointServlet endpointServlet = new EndpointServlet(TestServlet.class);
this.thrown.expect(IllegalArgumentException.class);
endpointServlet.withInitParameters(Collections.singletonMap(null, "value"));
}
@Test
public void withInitParameterEmptyName() {
EndpointServlet endpointServlet = new EndpointServlet(TestServlet.class);
this.thrown.expect(IllegalArgumentException.class);
endpointServlet.withInitParameters(Collections.singletonMap(" ", "value"));
}
@Test
public void withInitParameterShouldReturnNewInstance() {
EndpointServlet endpointServlet = new EndpointServlet(TestServlet.class);