diff --git a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/menu/MenuHandlerTest.java b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/menu/MenuHandlerTest.java index 689aa26..8c2f382 100644 --- a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/menu/MenuHandlerTest.java +++ b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/menu/MenuHandlerTest.java @@ -135,6 +135,22 @@ class MenuHandlerTest { verify(menuService).findByParentId(0L); } + @Test + void testGetMenusByParent_Default() { + when(menuService.findByParentId(0L)).thenReturn(Flux.just(testMenu)); + + ServerRequest request = MockServerRequest.builder() + .build(); + Mono response = menuHandler.getMenusByParent(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(menuService).findByParentId(0L); + } + @Test void testGetMenusByType() { when(menuService.findAll()).thenReturn(Flux.just(testMenu)); @@ -152,6 +168,22 @@ class MenuHandlerTest { verify(menuService).findAll(); } + @Test + void testGetMenusByType_Null() { + when(menuService.findAll()).thenReturn(Flux.just(testMenu)); + + ServerRequest request = MockServerRequest.builder() + .build(); + Mono response = menuHandler.getMenusByType(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(menuService).findAll(); + } + @Test void testCreateMenu() { MenuCreateRequest createRequest = new MenuCreateRequest(); @@ -203,6 +235,26 @@ class MenuHandlerTest { verify(menuService).updateMenu(any(UpdateMenuCommand.class)); } + @Test + void testUpdateMenu_NotFound() { + MenuUpdateRequest updateRequest = new MenuUpdateRequest(); + updateRequest.setMenuName("更新菜单"); + + when(menuService.updateMenu(any(UpdateMenuCommand.class))).thenReturn(Mono.empty()); + + ServerRequest request = MockServerRequest.builder() + .pathVariable("id", "999") + .body(Mono.just(updateRequest)); + Mono response = menuHandler.updateMenu(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.NOT_FOUND) + .verifyComplete(); + + verify(menuService).updateMenu(any(UpdateMenuCommand.class)); + } + @Test void testDeleteMenu() { when(menuService.deleteMenu(1L)).thenReturn(Mono.empty()); diff --git a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/role/SysRoleHandlerTest.java b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/role/SysRoleHandlerTest.java index 3477b68..39c693f 100644 --- a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/role/SysRoleHandlerTest.java +++ b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/role/SysRoleHandlerTest.java @@ -64,6 +64,60 @@ class SysRoleHandlerTest { verify(roleService).findAll(); } + @Test + void testGetRolesByPage() { + cn.novalon.manage.common.dto.PageResponse pageResponse = + new cn.novalon.manage.common.dto.PageResponse<>(); + pageResponse.setContent(java.util.List.of(testRole)); + pageResponse.setTotalElements(1L); + pageResponse.setTotalPages(1); + pageResponse.setCurrentPage(0); + pageResponse.setPageSize(10); + + when(roleService.findRolesByPage(any(cn.novalon.manage.common.dto.PageRequest.class))) + .thenReturn(Mono.just(pageResponse)); + + ServerRequest request = MockServerRequest.builder() + .queryParam("page", "0") + .queryParam("size", "10") + .queryParam("sort", "id") + .queryParam("order", "asc") + .build(); + Mono response = roleHandler.getRolesByPage(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(roleService).findRolesByPage(any(cn.novalon.manage.common.dto.PageRequest.class)); + } + + @Test + void testGetRolesByPage_WithKeyword() { + cn.novalon.manage.common.dto.PageResponse pageResponse = + new cn.novalon.manage.common.dto.PageResponse<>(); + pageResponse.setContent(java.util.List.of(testRole)); + pageResponse.setTotalElements(1L); + + when(roleService.findRolesByPage(any(cn.novalon.manage.common.dto.PageRequest.class))) + .thenReturn(Mono.just(pageResponse)); + + ServerRequest request = MockServerRequest.builder() + .queryParam("page", "0") + .queryParam("size", "10") + .queryParam("keyword", "admin") + .build(); + Mono response = roleHandler.getRolesByPage(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(roleService).findRolesByPage(any(cn.novalon.manage.common.dto.PageRequest.class)); + } + @Test void testGetRoleCount() { when(roleService.count()).thenReturn(Mono.just(5L)); @@ -209,6 +263,26 @@ class SysRoleHandlerTest { verify(roleService).updateRole(any(UpdateRoleCommand.class)); } + @Test + void testUpdateRole_NotFound() { + RoleUpdateRequest updateRequest = new RoleUpdateRequest(); + updateRequest.setRoleName("UPDATED_ROLE"); + + when(roleService.updateRole(any(UpdateRoleCommand.class))).thenReturn(Mono.empty()); + + ServerRequest request = MockServerRequest.builder() + .pathVariable("id", "999") + .body(Mono.just(updateRequest)); + Mono response = roleHandler.updateRole(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.NOT_FOUND) + .verifyComplete(); + + verify(roleService).updateRole(any(UpdateRoleCommand.class)); + } + @Test void testDeleteRole() { when(roleService.logicalDeleteRole(1L)).thenReturn(Mono.just(testRole)); diff --git a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/user/SysUserHandlerTest.java b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/user/SysUserHandlerTest.java index 50aefe7..b8805bd 100644 --- a/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/user/SysUserHandlerTest.java +++ b/novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/handler/user/SysUserHandlerTest.java @@ -241,4 +241,155 @@ class SysUserHandlerTest { verify(userService).existsByEmail("test@example.com"); } + + @Test + void testGetUsersByPage() { + cn.novalon.manage.common.dto.PageResponse pageResponse = + new cn.novalon.manage.common.dto.PageResponse<>(); + pageResponse.setContent(List.of(testUser)); + pageResponse.setTotalElements(1L); + pageResponse.setTotalPages(1); + pageResponse.setCurrentPage(0); + pageResponse.setPageSize(10); + + when(userService.findUsersByPage(any(cn.novalon.manage.common.dto.PageRequest.class))) + .thenReturn(Mono.just(pageResponse)); + + ServerRequest request = MockServerRequest.builder() + .queryParam("page", "0") + .queryParam("size", "10") + .queryParam("sort", "id") + .queryParam("order", "asc") + .build(); + Mono response = userHandler.getUsersByPage(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(userService).findUsersByPage(any(cn.novalon.manage.common.dto.PageRequest.class)); + } + + @Test + void testGetUsersByPage_WithKeyword() { + cn.novalon.manage.common.dto.PageResponse pageResponse = + new cn.novalon.manage.common.dto.PageResponse<>(); + pageResponse.setContent(List.of(testUser)); + pageResponse.setTotalElements(1L); + + when(userService.findUsersByPage(any(cn.novalon.manage.common.dto.PageRequest.class))) + .thenReturn(Mono.just(pageResponse)); + + ServerRequest request = MockServerRequest.builder() + .queryParam("page", "0") + .queryParam("size", "10") + .queryParam("keyword", "test") + .build(); + Mono response = userHandler.getUsersByPage(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(userService).findUsersByPage(any(cn.novalon.manage.common.dto.PageRequest.class)); + } + + @Test + void testCreateUser() { + UserRegisterRequest registerRequest = new UserRegisterRequest(); + registerRequest.setUsername("newuser"); + registerRequest.setPassword("Password123!"); + registerRequest.setEmail("new@example.com"); + + when(userService.createUser(any(CreateUserCommand.class))).thenReturn(Mono.just(testUser)); + + ServerRequest request = MockServerRequest.builder() + .body(Mono.just(registerRequest)); + Mono response = userHandler.createUser(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.CREATED) + .verifyComplete(); + + verify(userService).createUser(any(CreateUserCommand.class)); + } + + @Test + void testUpdateUser() { + UserUpdateRequest updateRequest = new UserUpdateRequest(); + updateRequest.setEmail("updated@example.com"); + updateRequest.setRoleId(2L); + updateRequest.setStatus(0); + + when(userService.updateUser(any(UpdateUserCommand.class))).thenReturn(Mono.just(testUser)); + + ServerRequest request = MockServerRequest.builder() + .pathVariable("id", "1") + .body(Mono.just(updateRequest)); + Mono response = userHandler.updateUser(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.OK) + .verifyComplete(); + + verify(userService).updateUser(any(UpdateUserCommand.class)); + } + + @Test + void testUpdateUser_NotFound() { + UserUpdateRequest updateRequest = new UserUpdateRequest(); + updateRequest.setEmail("updated@example.com"); + + when(userService.updateUser(any(UpdateUserCommand.class))).thenReturn(Mono.empty()); + + ServerRequest request = MockServerRequest.builder() + .pathVariable("id", "999") + .body(Mono.just(updateRequest)); + Mono response = userHandler.updateUser(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.NOT_FOUND) + .verifyComplete(); + + verify(userService).updateUser(any(UpdateUserCommand.class)); + } + + @Test + void testLogicalDeleteUsers() { + List ids = List.of(1L, 2L, 3L); + when(userService.logicalDeleteUsers(anyList())).thenReturn(Mono.empty()); + + ServerRequest request = MockServerRequest.builder() + .body(Mono.just(ids)); + Mono response = userHandler.logicalDeleteUsers(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.NO_CONTENT) + .verifyComplete(); + + verify(userService).logicalDeleteUsers(anyList()); + } + + @Test + void testRestoreUsers() { + List ids = List.of(1L, 2L, 3L); + when(userService.restoreUsers(anyList())).thenReturn(Mono.empty()); + + ServerRequest request = MockServerRequest.builder() + .body(Mono.just(ids)); + Mono response = userHandler.restoreUsers(request); + + StepVerifier.create(response) + .expectNextMatches(serverResponse -> + serverResponse.statusCode() == HttpStatus.NO_CONTENT) + .verifyComplete(); + + verify(userService).restoreUsers(anyList()); + } } \ No newline at end of file