MerchantSubaccountControllerTest.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.ruoyi.app.user;
  2. import com.ruoyi.app.user.dto.MerchantSubaccountCreateRequest;
  3. import com.ruoyi.app.user.dto.MerchantSubaccountPasswordRequest;
  4. import com.ruoyi.app.user.dto.MerchantSubaccountStatusRequest;
  5. import com.ruoyi.app.user.dto.MerchantSubaccountUpdateRequest;
  6. import com.ruoyi.app.user.dto.MerchantSubaccountView;
  7. import com.ruoyi.common.core.domain.AjaxResult;
  8. import com.ruoyi.common.utils.MessageUtils;
  9. import com.ruoyi.system.utils.AuthContext;
  10. import org.junit.jupiter.api.AfterEach;
  11. import org.junit.jupiter.api.BeforeEach;
  12. import org.junit.jupiter.api.Test;
  13. import org.mockito.MockedStatic;
  14. import java.util.List;
  15. import static org.junit.jupiter.api.Assertions.assertEquals;
  16. import static org.mockito.Mockito.mock;
  17. import static org.mockito.Mockito.mockStatic;
  18. import static org.mockito.Mockito.verify;
  19. import static org.mockito.Mockito.when;
  20. class MerchantSubaccountControllerTest {
  21. private MerchantSubaccountApplicationService applicationService;
  22. private MerchantSubaccountController controller;
  23. private MockedStatic<MessageUtils> messages;
  24. private MockedStatic<AuthContext> authContext;
  25. @BeforeEach
  26. void setUp() {
  27. messages = mockStatic(MessageUtils.class);
  28. messages.when(() -> MessageUtils.message(org.mockito.ArgumentMatchers.anyString()))
  29. .thenAnswer(invocation -> invocation.getArgument(0));
  30. authContext = mockStatic(AuthContext.class);
  31. authContext.when(AuthContext::requireUserId).thenReturn(10L);
  32. applicationService = mock(MerchantSubaccountApplicationService.class);
  33. controller = new MerchantSubaccountController(applicationService);
  34. }
  35. @AfterEach
  36. void tearDown() {
  37. authContext.close();
  38. messages.close();
  39. }
  40. @Test
  41. void listUsesAuthenticatedMerchantInsteadOfRequestOwner() {
  42. MerchantSubaccountView view = new MerchantSubaccountView();
  43. view.setUserId(20L);
  44. when(applicationService.listForOwner(10L)).thenReturn(List.of(view));
  45. AjaxResult result = controller.list("token");
  46. assertEquals(List.of(view), result.get(AjaxResult.DATA_TAG));
  47. verify(applicationService).listForOwner(10L);
  48. }
  49. @Test
  50. void mutationsAlwaysUseAuthenticatedOwner() {
  51. MerchantSubaccountCreateRequest create = new MerchantSubaccountCreateRequest();
  52. MerchantSubaccountUpdateRequest update = new MerchantSubaccountUpdateRequest();
  53. MerchantSubaccountPasswordRequest password = new MerchantSubaccountPasswordRequest();
  54. MerchantSubaccountStatusRequest status = new MerchantSubaccountStatusRequest();
  55. controller.create("token", create);
  56. controller.update("token", 20L, update);
  57. controller.updatePassword("token", 20L, password);
  58. controller.updateStatus("token", 20L, status);
  59. verify(applicationService).create(10L, create);
  60. verify(applicationService).update(10L, 20L, update);
  61. verify(applicationService).updatePassword(10L, 20L, password);
  62. verify(applicationService).updateOwnerStatus(10L, 20L, status);
  63. }
  64. }