Allow UriTemplate to be built with an empty template

Closes gh-32438
This commit is contained in:
Kasper Bisgaard
2024-03-13 10:20:27 +01:00
committed by Stéphane Nicoll
parent 5056e8cbfb
commit 5dfec09edd
2 changed files with 14 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2021 the original author or authors. * Copyright 2002-2024 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.
@@ -66,7 +66,7 @@ public class UriTemplate implements Serializable {
* @param uriTemplate the URI template string * @param uriTemplate the URI template string
*/ */
public UriTemplate(String uriTemplate) { public UriTemplate(String uriTemplate) {
Assert.hasText(uriTemplate, "'uriTemplate' must not be null"); Assert.notNull(uriTemplate, "'uriTemplate' must not be null");
this.uriTemplate = uriTemplate; this.uriTemplate = uriTemplate;
this.uriComponents = UriComponentsBuilder.fromUriString(uriTemplate).build(); this.uriComponents = UriComponentsBuilder.fromUriString(uriTemplate).build();

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2020 the original author or authors. * Copyright 2002-2024 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.
@@ -27,6 +27,7 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.assertj.core.api.Assertions.assertThatNoException;
/** /**
* @author Arjen Poutsma * @author Arjen Poutsma
@@ -35,6 +36,16 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*/ */
public class UriTemplateTests { public class UriTemplateTests {
@Test
void emptyPathDoesNotThrowException() {
assertThatNoException().isThrownBy(() -> new UriTemplate(""));
}
@Test
void nullPathThrowsException() {
assertThatIllegalArgumentException().isThrownBy(() -> new UriTemplate(null));
}
@Test @Test
public void getVariableNames() throws Exception { public void getVariableNames() throws Exception {
UriTemplate template = new UriTemplate("/hotels/{hotel}/bookings/{booking}"); UriTemplate template = new UriTemplate("/hotels/{hotel}/bookings/{booking}");