refactored, pre-buffer reuse
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package dev.relism.routing;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class PathUtilsTest {
|
||||
|
||||
// --- sanitize ---
|
||||
|
||||
@Test
|
||||
void sanitize_nullOrBlank_returnsRoot() {
|
||||
assertEquals("/", PathUtils.sanitize(null));
|
||||
assertEquals("/", PathUtils.sanitize(""));
|
||||
assertEquals("/", PathUtils.sanitize(" "));
|
||||
assertEquals("/", PathUtils.sanitize("/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void sanitize_trimsWhitespaceAndEnsuresLeadingSlash() {
|
||||
assertEquals("/users", PathUtils.sanitize(" users "));
|
||||
assertEquals("/api", PathUtils.sanitize("api"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void sanitize_removesTrailingSlash() {
|
||||
assertEquals("/users", PathUtils.sanitize("/users/"));
|
||||
assertEquals("/api/v1", PathUtils.sanitize("/api/v1/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void sanitize_collapsesMultipleSlashes() {
|
||||
assertEquals("/a/b/c", PathUtils.sanitize("//a///b//c/"));
|
||||
}
|
||||
|
||||
// --- join ---
|
||||
|
||||
@Test
|
||||
void join_withRootBase_returnsSanitizedPath() {
|
||||
assertEquals("/users", PathUtils.join("/", "/users/"));
|
||||
assertEquals("/users", PathUtils.join("/", "users"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void join_withRootPath_returnsSanitizedBase() {
|
||||
assertEquals("/api", PathUtils.join("/api/", "/"));
|
||||
assertEquals("/api", PathUtils.join("api", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
void join_preventsDoubleNamespace() {
|
||||
// Path already starts with base
|
||||
assertEquals("/api/users", PathUtils.join("/api", "/api/users"));
|
||||
assertEquals("/api/users", PathUtils.join("/api/", "/api/users/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void join_concatenatesProperly() {
|
||||
assertEquals("/api/users", PathUtils.join("/api", "users"));
|
||||
assertEquals("/api/users", PathUtils.join("/api", "/users"));
|
||||
assertEquals("/api/users", PathUtils.join("api", "users"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user