diff --git a/application/src/main/java/run/halo/app/core/extension/service/DefaultRoleService.java b/application/src/main/java/run/halo/app/core/extension/service/DefaultRoleService.java index 11b042aae..b02954113 100644 --- a/application/src/main/java/run/halo/app/core/extension/service/DefaultRoleService.java +++ b/application/src/main/java/run/halo/app/core/extension/service/DefaultRoleService.java @@ -72,7 +72,7 @@ public class DefaultRoleService implements RoleService { @Override public Mono>> getRolesByUsernames(Collection usernames) { if (CollectionUtils.isEmpty(usernames)) { - return Mono.empty(); + return Mono.just(Map.of()); } var subjects = usernames.stream().map(DefaultRoleService::toUserSubject) .map(Object::toString) diff --git a/application/src/test/java/run/halo/app/core/extension/service/DefaultRoleServiceTest.java b/application/src/test/java/run/halo/app/core/extension/service/DefaultRoleServiceTest.java index b2ca0f179..2498b0e10 100644 --- a/application/src/test/java/run/halo/app/core/extension/service/DefaultRoleServiceTest.java +++ b/application/src/test/java/run/halo/app/core/extension/service/DefaultRoleServiceTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -18,6 +19,8 @@ import org.assertj.core.api.AssertionsForInterfaceTypes; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -45,6 +48,19 @@ class DefaultRoleServiceTest { @InjectMocks private DefaultRoleService roleService; + @ParameterizedTest + @MethodSource("usernamesProvider") + void shouldReturnEmptyMapIfNoUsernamesProvided(Collection usernames) { + roleService.getRolesByUsernames(usernames) + .as(StepVerifier::create) + .expectNext(Map.of()) + .verifyComplete(); + } + + static Stream> usernamesProvider() { + return Stream.of(null, List.of(), Set.of()); + } + @Nested class ListDependenciesTest { @Test