diff --git a/src/main/java/com/meilisearch/sdk/http/URLBuilder.java b/src/main/java/com/meilisearch/sdk/http/URLBuilder.java index b959d629..a2f7e3da 100644 --- a/src/main/java/com/meilisearch/sdk/http/URLBuilder.java +++ b/src/main/java/com/meilisearch/sdk/http/URLBuilder.java @@ -21,6 +21,9 @@ public URLBuilder(String rootRoute) { } public URLBuilder addSubroute(String route) { + if (route == null || route.isEmpty()) { + throw new IllegalArgumentException("route segment must not be null or empty"); + } routes.append("/"); routes.append(route); return this; diff --git a/src/test/java/com/meilisearch/sdk/http/URLBuilderTest.java b/src/test/java/com/meilisearch/sdk/http/URLBuilderTest.java index 9573e15e..3416ec1c 100644 --- a/src/test/java/com/meilisearch/sdk/http/URLBuilderTest.java +++ b/src/test/java/com/meilisearch/sdk/http/URLBuilderTest.java @@ -5,6 +5,7 @@ import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.text.SimpleDateFormat; import java.util.Date; @@ -32,6 +33,19 @@ void addSubrouteWithMultipleRoutes() { assertThat(classToTest.getRoutes().toString(), is(equalTo("/route1/route2/route3/route4"))); } + @Test + void addSubrouteWithNullOrEmptyRoute() { + assertThat( + assertThrows(IllegalArgumentException.class, () -> classToTest.addSubroute("")) + .getMessage(), + is(equalTo("route segment must not be null or empty"))); + + assertThat( + assertThrows(IllegalArgumentException.class, () -> classToTest.addSubroute(null)) + .getMessage(), + is(equalTo("route segment must not be null or empty"))); + } + @Test void addParameterStringInt() { classToTest.addParameter("parameter1", 1);