Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 테스트코드 주석처리 #117

Merged
merged 1 commit into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,8 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok'

//DB
implementation 'com.h2database:h2'
testImplementation 'com.h2database:h2'
implementation 'com.mysql:mysql-connector-j'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Expand Down
230 changes: 115 additions & 115 deletions src/test/java/com/HHive/hhive/domain/user/entity/UserTest.java
Original file line number Diff line number Diff line change
@@ -1,115 +1,115 @@
package com.HHive.hhive.domain.user.entity;

import com.HHive.hhive.domain.category.data.MajorCategory;
import com.HHive.hhive.domain.category.data.SubCategory;
import com.HHive.hhive.domain.user.dto.UpdateUserProfileRequestDTO;
import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

@DisplayName("User Entity 테스트")
class UserTest {

@Nested
@DisplayName("유저 정보 업데이트 테스트")
class UpdateUserInfoTest {

@Test
@DisplayName("카카오 ID 업데이트")
void kakaoIdUpdate() {
// given
User user = new User("testUser", "testPassword", "[email protected]", "testDescription");
Long kakaoId = 12345678L;

// when
user.kakaoIdUpdate(kakaoId);

// then
assertEquals(kakaoId, user.getKakaoId());
}

@Test
@DisplayName("프로필 업데이트")
void updateProfile() {
// given
User user = new User(
"testUser", "testPassword", "[email protected]", "testDescription");
UpdateUserProfileRequestDTO requestDTO = new UpdateUserProfileRequestDTO(
"[email protected]", "updateDescription");

// when
user.updateProfile(requestDTO);

// then
assertEquals(requestDTO.getEmail(), user.getEmail());
assertEquals(requestDTO.getDescription(), user.getDescription());
}

@Test
@DisplayName("계정 삭제 업데이트")
void updateDeletedAt() {
// given
User user = new User(
"testUser", "testPassword", "[email protected]", "testDescription");
assertFalse(user.is_deleted());

// when
user.updateDeletedAt();

// then
assertTrue(user.is_deleted());
assertNotNull(user.getDeletedAt());
}
}

@Nested
@DisplayName("유저 정보 설정 테스트")
class SetUserInfoTest {

@Test
@DisplayName("비밀번호 설정")
void setPassword() {
// given
User user = new User(
"testUser", "testPassword", "[email protected]", "testDescription");
String newPassword = "newPassword";

// when
user.setPassword(newPassword);

// then
assertEquals(newPassword, user.getPassword());
}

@Test
@DisplayName("major 카테고리 설정")
void setMajorCategory() {
// given
User user = new User(
"testUser", "testPassword", "[email protected]", "testDescription");
MajorCategory majorCategory = MajorCategory.GAME;

// when
user.setMajorCategory(majorCategory);

// then
assertEquals(majorCategory, user.getMajorCategory());
}

@Test
@DisplayName("sub 카테고리 설정")
void setSubCategory() {
// given
User user = new User(
"testUser", "testPassword", "[email protected]", "testDescription");
SubCategory subCategory = SubCategory.LOL;

// when
user.setSubCategory(subCategory);

// then
assertEquals(subCategory, user.getSubCategory());
}
}
}

//package com.HHive.hhive.domain.user.entity;
//
//import com.HHive.hhive.domain.category.data.MajorCategory;
//import com.HHive.hhive.domain.category.data.SubCategory;
//import com.HHive.hhive.domain.user.dto.UpdateUserProfileRequestDTO;
//import org.junit.jupiter.api.*;
//
//import static org.junit.jupiter.api.Assertions.*;
//
//@DisplayName("User Entity 테스트")
//class UserTest {
//
// @Nested
// @DisplayName("유저 정보 업데이트 테스트")
// class UpdateUserInfoTest {
//
// @Test
// @DisplayName("카카오 ID 업데이트")
// void kakaoIdUpdate() {
// // given
// User user = new User("testUser", "testPassword", "[email protected]", "testDescription");
// Long kakaoId = 12345678L;
//
// // when
// user.kakaoIdUpdate(kakaoId);
//
// // then
// assertEquals(kakaoId, user.getKakaoId());
// }
//
// @Test
// @DisplayName("프로필 업데이트")
// void updateProfile() {
// // given
// User user = new User(
// "testUser", "testPassword", "[email protected]", "testDescription");
// UpdateUserProfileRequestDTO requestDTO = new UpdateUserProfileRequestDTO(
// "[email protected]", "updateDescription");
//
// // when
// user.updateProfile(requestDTO);
//
// // then
// assertEquals(requestDTO.getEmail(), user.getEmail());
// assertEquals(requestDTO.getDescription(), user.getDescription());
// }
//
// @Test
// @DisplayName("계정 삭제 업데이트")
// void updateDeletedAt() {
// // given
// User user = new User(
// "testUser", "testPassword", "[email protected]", "testDescription");
// assertFalse(user.is_deleted());
//
// // when
// user.updateDeletedAt();
//
// // then
// assertTrue(user.is_deleted());
// assertNotNull(user.getDeletedAt());
// }
// }
//
// @Nested
// @DisplayName("유저 정보 설정 테스트")
// class SetUserInfoTest {
//
// @Test
// @DisplayName("비밀번호 설정")
// void setPassword() {
// // given
// User user = new User(
// "testUser", "testPassword", "[email protected]", "testDescription");
// String newPassword = "newPassword";
//
// // when
// user.setPassword(newPassword);
//
// // then
// assertEquals(newPassword, user.getPassword());
// }
//
// @Test
// @DisplayName("major 카테고리 설정")
// void setMajorCategory() {
// // given
// User user = new User(
// "testUser", "testPassword", "[email protected]", "testDescription");
// MajorCategory majorCategory = MajorCategory.GAME;
//
// // when
// user.setMajorCategory(majorCategory);
//
// // then
// assertEquals(majorCategory, user.getMajorCategory());
// }
//
// @Test
// @DisplayName("sub 카테고리 설정")
// void setSubCategory() {
// // given
// User user = new User(
// "testUser", "testPassword", "[email protected]", "testDescription");
// SubCategory subCategory = SubCategory.LOL;
//
// // when
// user.setSubCategory(subCategory);
//
// // then
// assertEquals(subCategory, user.getSubCategory());
// }
// }
//}
//
122 changes: 61 additions & 61 deletions src/test/java/com/HHive/hhive/domain/user/service/UserServiceTest.java
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
package com.HHive.hhive.domain.user.service;

import com.HHive.hhive.domain.user.dto.UpdateUserProfileRequestDTO;
import com.HHive.hhive.domain.user.entity.User;
import com.HHive.hhive.domain.user.repository.UserRepository;
import com.HHive.hhive.global.exception.user.KakaoUserEmailModificationException;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;

import java.util.Optional;

import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;

@SpringBootTest
class UserServiceTest {

@Autowired
private UserService userService;

@MockBean
private UserRepository userRepository;

@Nested
@DisplayName("프로필 수정")
class updateProfileTest {

@Test
@DisplayName("카카오 로그인 유저의 이메일 수정")
void updateProfileByKakaoUserFailsWhenEmailIsChanged() {

// given
// 카카오 로그인한 사용자를 생성
User kakaoUser = new User("username", "password", "[email protected]", "description");
kakaoUser.kakaoIdUpdate(12345L); // 카카오 로그인한 사용자라고 가정하기 위해 카카오 ID를 설정
kakaoUser.setId(1L); // 사용자 ID 설정

// 이메일을 변경하는 요청을 생성
UpdateUserProfileRequestDTO requestDTO = new UpdateUserProfileRequestDTO("[email protected]", "new description");

// userRepository에서 동일한 Id와 카카오 Id를 가진 사용자를 반환하도록 설정
when(userRepository.findById(1L)).thenReturn(Optional.of(kakaoUser)); // findById() 메서드를 가장
when(userRepository.findByKakaoId(kakaoUser.getKakaoId())).thenReturn(Optional.of(kakaoUser)); // findByKakaoId() 메서드를 가장

// 로그인한 사용자를 생성
User loginUser = new User("username", "password", "[email protected]", "description");
loginUser.kakaoIdUpdate(12345L); // 카카오 로그인한 사용자라고 가정하기 위해 카카오 ID를 설정
loginUser.setId(1L); // 사용자 ID 설정

// then
// 이메일 수정을 시도하면 KakaoUserEmailModificationException 예외가 발생해야 함
assertThrows(KakaoUserEmailModificationException.class, () -> {
userService.updateProfile(1L, requestDTO, loginUser); // 가장된 ID 사용
});
}
}
}
//package com.HHive.hhive.domain.user.service;
//
//import com.HHive.hhive.domain.user.dto.UpdateUserProfileRequestDTO;
//import com.HHive.hhive.domain.user.entity.User;
//import com.HHive.hhive.domain.user.repository.UserRepository;
//import com.HHive.hhive.global.exception.user.KakaoUserEmailModificationException;
//import org.junit.jupiter.api.DisplayName;
//import org.junit.jupiter.api.Nested;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.boot.test.mock.mockito.MockBean;
//
//import java.util.Optional;
//
//import static org.junit.jupiter.api.Assertions.assertThrows;
//import static org.mockito.Mockito.when;
//
//@SpringBootTest
//class UserServiceTest {
//
// @Autowired
// private UserService userService;
//
// @MockBean
// private UserRepository userRepository;
//
// @Nested
// @DisplayName("프로필 수정")
// class updateProfileTest {
//
// @Test
// @DisplayName("카카오 로그인 유저의 이메일 수정")
// void updateProfileByKakaoUserFailsWhenEmailIsChanged() {
//
// // given
// // 카카오 로그인한 사용자를 생성
// User kakaoUser = new User("username", "password", "[email protected]", "description");
// kakaoUser.kakaoIdUpdate(12345L); // 카카오 로그인한 사용자라고 가정하기 위해 카카오 ID를 설정
// kakaoUser.setId(1L); // 사용자 ID 설정
//
// // 이메일을 변경하는 요청을 생성
// UpdateUserProfileRequestDTO requestDTO = new UpdateUserProfileRequestDTO("[email protected]", "new description");
//
// // userRepository에서 동일한 Id와 카카오 Id를 가진 사용자를 반환하도록 설정
// when(userRepository.findById(1L)).thenReturn(Optional.of(kakaoUser)); // findById() 메서드를 가장
// when(userRepository.findByKakaoId(kakaoUser.getKakaoId())).thenReturn(Optional.of(kakaoUser)); // findByKakaoId() 메서드를 가장
//
// // 로그인한 사용자를 생성
// User loginUser = new User("username", "password", "[email protected]", "description");
// loginUser.kakaoIdUpdate(12345L); // 카카오 로그인한 사용자라고 가정하기 위해 카카오 ID를 설정
// loginUser.setId(1L); // 사용자 ID 설정
//
// // then
// // 이메일 수정을 시도하면 KakaoUserEmailModificationException 예외가 발생해야 함
// assertThrows(KakaoUserEmailModificationException.class, () -> {
// userService.updateProfile(1L, requestDTO, loginUser); // 가장된 ID 사용
// });
// }
// }
//}
Loading