添加了修改密码 忘记密码 邀请码的生成与验证
Change-Id: I88ffc40e64943c7c9fcd411c763e788e6e49c834
diff --git a/src/test/java/com/example/g8backend/service/UserSecurityServiceImplTest.java b/src/test/java/com/example/g8backend/service/UserSecurityServiceImplTest.java
new file mode 100644
index 0000000..f04fbc5
--- /dev/null
+++ b/src/test/java/com/example/g8backend/service/UserSecurityServiceImplTest.java
@@ -0,0 +1,55 @@
+package com.example.g8backend.service;
+
+import com.example.g8backend.entity.User;
+import com.example.g8backend.mapper.UserMapper;
+import com.example.g8backend.service.impl.UserSecurityServiceImpl;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+public class UserSecurityServiceImplTest {
+
+ @Mock
+ private UserMapper userMapper;
+ @Mock
+ private PasswordEncoder passwordEncoder;
+
+ @InjectMocks
+ private UserSecurityServiceImpl userSecurityService;
+
+ private User user;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ user = new User();
+ user.setUserId(1L);
+ user.setPassword("encodedOld");
+ }
+
+ @Test
+ void changePassword_Success() {
+ when(userMapper.selectById(1L)).thenReturn(user);
+ when(passwordEncoder.matches("old", "encodedOld")).thenReturn(true);
+ when(passwordEncoder.encode("new")).thenReturn("encodedNew");
+ when(userMapper.updateById(any(User.class))).thenReturn(1);
+
+ boolean result = userSecurityService.changePassword(1L, "old", "new");
+ assertTrue(result);
+ verify(userMapper).updateById(any(User.class));
+ }
+
+ @Test
+ void changePassword_WrongOldPassword() {
+ when(userMapper.selectById(1L)).thenReturn(user);
+ when(passwordEncoder.matches("wrong", "encodedOld")).thenReturn(false);
+
+ assertThrows(RuntimeException.class, () -> userSecurityService.changePassword(1L, "wrong", "new"));
+ }
+}
\ No newline at end of file