admin: 인증 서비스 테스트 코드 추가

This commit is contained in:
geonhos 2024-05-23 15:32:59 +09:00
parent a3404947a0
commit 23202f1d76
2 changed files with 88 additions and 2 deletions

View File

@ -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;

View File

@ -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();
}
}