shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:8:class PermissionTest { shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:12: Permission p = Permission.parse("worklog:close"); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:21: Permission p = Permission.parse("worklog:write"); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:23: assertThat(Permission.parse(p.value())).isEqualTo(p); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:30: Permission p = Permission.parse("WorkLog:Close"); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:34: assertThat(p).isEqualTo(Permission.parse("worklog:close")); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:39: Permission p = Permission.parse(" worklog:read "); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:41: assertThat(p).isEqualTo(Permission.parse("worklog:read")); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:46: assertThatThrownBy(() -> new Permission("worklog", " ")) shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:48: assertThatThrownBy(() -> new Permission(" ", "read")) shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:54: assertThatThrownBy(() -> Permission.parse(null)).isInstanceOf(IllegalArgumentException.class); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:55: assertThatThrownBy(() -> Permission.parse(" ")).isInstanceOf(IllegalArgumentException.class); shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:62: assertThatThrownBy(() -> Permission.parse("worklog")) shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:64: assertThatThrownBy(() -> Permission.parse("svc:worklog:close")) shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:66: assertThatThrownBy(() -> Permission.parse("worklog:")) shared-contract/src/test/java/dev/caskeleton/shared/security/PermissionTest.java:68: assertThatThrownBy(() -> Permission.parse(":read")) shared-contract/src/main/java/dev/caskeleton/shared/security/Permission.java:14:public record Permission(String resource, String action) { shared-contract/src/main/java/dev/caskeleton/shared/security/Permission.java:18: public Permission { shared-contract/src/main/java/dev/caskeleton/shared/security/Permission.java:24: * Parses a {@code resource:action} token into a {@link Permission}. Surrounding whitespace is shared-contract/src/main/java/dev/caskeleton/shared/security/Permission.java:31: public static Permission parse(String token) { shared-contract/src/main/java/dev/caskeleton/shared/security/Permission.java:42: return new Permission(trimmed.substring(0, firstColon), trimmed.substring(firstColon + 1));