admin: 인증 서비스 테스트 코드 추가
This commit is contained in:
parent
a3404947a0
commit
23202f1d76
|
|
@ -2,7 +2,6 @@ package com.bpgroup.poc.admin.domain.admin.entity;
|
|||
|
||||
import com.bpgroup.poc.admin.domain.role.entity.Role;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
|
|
@ -13,7 +12,6 @@ public class AdminRole {
|
|||
@JoinColumn(name = "role_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||
private Role role;
|
||||
|
||||
@Builder
|
||||
public static AdminRole of(Role role) {
|
||||
AdminRole adminRole = new AdminRole();
|
||||
adminRole.role = role;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,88 @@
|
|||
package com.bpgroup.poc.admin.app.authentication;
|
||||
|
||||
import com.bpgroup.poc.admin.app.authentication.exception.InvalidPasswordException;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdminRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdminRole;
|
||||
import com.bpgroup.poc.admin.domain.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.role.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
@DisplayName("AuthenticationAppService 테스트")
|
||||
@Transactional
|
||||
class AuthenticationAppServiceTest extends MariaDBTestEnv {
|
||||
|
||||
@Autowired
|
||||
private AuthenticationAppService authenticationAppService;
|
||||
|
||||
@Autowired
|
||||
private PasswordEncoder passwordEncoder;
|
||||
|
||||
@Autowired
|
||||
private RoleRepository roleRepository;
|
||||
|
||||
@Autowired
|
||||
private AdminRepository adminRepository;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
roleRepository.deleteAll();
|
||||
adminRepository.deleteAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("정상 로그인 테스트")
|
||||
void loginTest() throws Exception {
|
||||
// given
|
||||
createRoleAndAdmin();
|
||||
|
||||
// when
|
||||
AuthenticationResult authenticationResult = authenticationAppService.login("test", "test");
|
||||
|
||||
// then
|
||||
assertThat(authenticationResult).isNotNull();
|
||||
assertThat(authenticationResult.getId()).isNotNull();
|
||||
}
|
||||
|
||||
@DisplayName("패스워드 불일치 테스트")
|
||||
@Test
|
||||
void loginTestInvalidPassword() {
|
||||
// given
|
||||
createRoleAndAdmin();
|
||||
|
||||
// when then
|
||||
assertThatThrownBy(() -> authenticationAppService.login("test", "invalid")).isInstanceOf(InvalidPasswordException.class);
|
||||
}
|
||||
|
||||
private void createRoleAndAdmin() {
|
||||
Role savedRole = roleRepository.save(
|
||||
Role.createOf(
|
||||
"test",
|
||||
"test"
|
||||
)
|
||||
);
|
||||
flushAndClear();
|
||||
|
||||
adminRepository.save(
|
||||
Admin.createOf(
|
||||
"test",
|
||||
passwordEncoder.encode("test"),
|
||||
"test",
|
||||
"test",
|
||||
AdminRole.of(savedRole)
|
||||
)
|
||||
);
|
||||
flushAndClear();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue