diff --git a/src/test/java/com/gabojait/gabojaitspring/repository/team/TeamRepositoryTest.java b/src/test/java/com/gabojait/gabojaitspring/repository/team/TeamRepositoryTest.java index 8fc424e2..980c7770 100644 --- a/src/test/java/com/gabojait/gabojaitspring/repository/team/TeamRepositoryTest.java +++ b/src/test/java/com/gabojait/gabojaitspring/repository/team/TeamRepositoryTest.java @@ -1,12 +1,12 @@ package com.gabojait.gabojaitspring.repository.team; +import com.gabojait.gabojaitspring.api.dto.common.response.PageData; import com.gabojait.gabojaitspring.domain.team.Team; import com.gabojait.gabojaitspring.domain.user.Position; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.domain.Page; import org.springframework.test.context.ActiveProfiles; import org.springframework.transaction.annotation.Transactional; @@ -38,10 +38,10 @@ void givenNonePosition_whenFindPage_thenReturn() { Position position = Position.NONE; // when - Page teams = teamRepository.findPage(position, pageFrom, pageSize); + PageData> teams = teamRepository.findPage(position, pageFrom, pageSize); // then - assertThat(teams.getContent()) + assertThat(teams.getData()) .extracting("id", "projectName", "projectDescription", "expectation", "openChatUrl", "projectUrl", "designerCurrentCnt", "backendCurrentCnt", "frontendCurrentCnt", "managerCurrentCnt", "designerMaxCnt", "backendMaxCnt", "frontendMaxCnt", "managerMaxCnt", "visitedCnt", @@ -61,8 +61,8 @@ void givenNonePosition_whenFindPage_thenReturn() { team3.getVisitedCnt(), team3.getIsRecruiting(), team3.getIsDeleted()) ); - assertEquals(pageSize, teams.getSize()); - assertEquals(4, teams.getTotalElements()); + assertEquals(pageSize, teams.getData().size()); + assertEquals(4, teams.getTotal()); } @@ -81,10 +81,10 @@ void givenPosition_whenFindPage_thenReturn() { Position position = Position.BACKEND; // when - Page teams = teamRepository.findPage(position, pageFrom, pageSize); + PageData> teams = teamRepository.findPage(position, pageFrom, pageSize); // then - assertThat(teams.getContent()) + assertThat(teams.getData()) .extracting("id", "projectName", "projectDescription", "expectation", "openChatUrl", "projectUrl", "designerCurrentCnt", "backendCurrentCnt", "frontendCurrentCnt", "managerCurrentCnt", "designerMaxCnt", "backendMaxCnt", "frontendMaxCnt", "managerMaxCnt", "visitedCnt", @@ -104,8 +104,8 @@ void givenPosition_whenFindPage_thenReturn() { team2.getVisitedCnt(), team2.getIsRecruiting(), team2.getIsDeleted()) ); - assertEquals(pageSize, teams.getSize()); - assertEquals(3, teams.getTotalElements()); + assertEquals(pageSize, teams.getData().size()); + assertEquals(3, teams.getTotal()); } private Team createTeam(String projectName, byte maxCnt) { diff --git a/src/test/java/com/gabojait/gabojaitspring/repository/user/ContactRepositoryTest.java b/src/test/java/com/gabojait/gabojaitspring/repository/user/ContactRepositoryTest.java index 7a492f23..6276fa3e 100644 --- a/src/test/java/com/gabojait/gabojaitspring/repository/user/ContactRepositoryTest.java +++ b/src/test/java/com/gabojait/gabojaitspring/repository/user/ContactRepositoryTest.java @@ -26,22 +26,45 @@ class ContactRepositoryTest { void givenValid_whenFindByEmail_thenReturn() { // given Contact contact = createContact("tester@gabojait.com"); + contactRepository.save(contact); + + // when + Contact foundContact = contactRepository.findByEmail(contact.getEmail()).get(); + // then + assertThat(foundContact).isEqualTo(contact); + } + + @Test + @DisplayName("존재하는 연락처 이메일로 연락처 존재 여부를 확인 한다.") + void givenExisting_whenExistsByEmail_thenReturn() { + // given + Contact contact = createContact("tester@gabojait.com"); contactRepository.save(contact); // when - Optional foundContact = contactRepository.findByEmail(contact.getEmail()); + boolean result = contactRepository.existsByEmail(contact.getEmail()); + + // then + assertThat(result).isTrue(); + } + + @Test + @DisplayName("존재하지 않은 연락처 이메일로 연락처 존재 여부를 확인 한다.") + void givenNonExisting_whenExistsByEmail_thenReturn() { + // given + String email = "tester@gabojait.com"; + + // when + boolean result = contactRepository.existsByEmail(email); // then - assertThat(foundContact.get()) - .extracting("id", "email", "verificationCode", "isVerified", "createdAt", "updatedAt") - .containsExactly(contact.getId(), contact.getEmail(), contact.getVerificationCode(), - contact.getIsVerified(), contact.getCreatedAt(), contact.getUpdatedAt()); + assertThat(result).isFalse(); } @Test @DisplayName("이메일로 인증된 연락처 단건 조회를 한다.") - void givenVerifiedContact_whenFindByEmailAndIsVerified_thenReturn() { + void givenVerified_whenFindByEmailAndIsVerified_thenReturn() { // given Contact contact = createContact("tester@gabojait.com"); contact.verified(); @@ -49,31 +72,38 @@ void givenVerifiedContact_whenFindByEmailAndIsVerified_thenReturn() { contactRepository.save(contact); // when - Optional foundContact = contactRepository.findByEmailAndIsVerified(contact.getEmail(), true); + Contact foundContact = contactRepository.findByEmailAndIsVerified(contact.getEmail(), true).get(); // then - assertThat(foundContact.get()) - .extracting("id", "email", "verificationCode", "isVerified", "createdAt", "updatedAt") - .containsExactly(contact.getId(), contact.getEmail(), contact.getVerificationCode(), - contact.getIsVerified(), contact.getCreatedAt(), contact.getUpdatedAt()); + assertThat(foundContact).isEqualTo(contact); } @Test - @DisplayName("이메일로 인증 안된 연락처 단건 조회를 한다.") - void givenUnverifiedContact_whenFindByEmailAndIsVerifiedIsFalse_thenReturn() { + @DisplayName("이메일로 인증되지 않은 연락처 단건 조회를 한다.") + void givenUnverified_whenFindByEmailAndIsVerified_thenReturn() { // given Contact contact = createContact("tester@gabojait.com"); + contactRepository.save(contact); + + // when + Contact foundContact = contactRepository.findByEmailAndIsVerified(contact.getEmail(), false).get(); + // then + assertThat(foundContact).isEqualTo(contact); + } + + @Test + @DisplayName("이메일로 연락처를 삭제한다.") + void givenValid_whenDeleteByEmail_thenReturn() { + // given + Contact contact = createContact("tester@gabojait.com"); contactRepository.save(contact); // when - Optional foundContact = contactRepository.findByEmailAndIsVerified(contact.getEmail(), false); + contactRepository.deleteByEmail(contact.getEmail()); // then - assertThat(foundContact.get()) - .extracting("id", "email", "verificationCode", "isVerified", "createdAt", "updatedAt") - .containsExactly(contact.getId(), contact.getEmail(), contact.getVerificationCode(), - contact.getIsVerified(), contact.getCreatedAt(), contact.getUpdatedAt()); + assertThat(contactRepository.existsByEmail(contact.getEmail())).isFalse(); } @Test diff --git a/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRepositoryTest.java b/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRepositoryTest.java index b2429cbe..aa90de6b 100644 --- a/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRepositoryTest.java +++ b/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRepositoryTest.java @@ -1,5 +1,6 @@ package com.gabojait.gabojaitspring.repository.user; +import com.gabojait.gabojaitspring.api.dto.common.response.PageData; import com.gabojait.gabojaitspring.domain.user.Contact; import com.gabojait.gabojaitspring.domain.user.Gender; import com.gabojait.gabojaitspring.domain.user.Position; @@ -9,17 +10,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.data.domain.Page; import org.springframework.test.context.ActiveProfiles; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; -import java.util.Optional; import static org.assertj.core.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertAll; @ActiveProfiles("test") @SpringBootTest @@ -41,18 +40,10 @@ void givenValid_whenFindByContact_thenReturn() { userRepository.save(user); // when - Optional foundUser = userRepository.findByContact(contact); + User foundUser = userRepository.findByContact(contact).get(); // then - assertThat(foundUser.get()) - .extracting("id", "username", "password", "nickname", "gender", "birthdate", "profileDescription", - "imageUrl", "lastRequestAt", "position", "rating", "visitedCnt", "reviewCnt", "isSeekingTeam", - "isTemporaryPassword", "isNotified", "createdAt", "updatedAt") - .containsExactly(user.getId(), user.getUsername(), user.getPassword(), user.getNickname(), - user.getGender(), user.getBirthdate(), user.getProfileDescription(), user.getImageUrl(), - user.getLastRequestAt(), user.getPosition(), user.getRating(), user.getVisitedCnt(), - user.getReviewCnt(), user.getIsSeekingTeam(), user.getIsTemporaryPassword(), - user.getIsNotified(), user.getCreatedAt(), user.getUpdatedAt()); + assertThat(foundUser).isEqualTo(user); } @Test @@ -67,18 +58,10 @@ void givenValid_whenFindByUsername_thenReturn() { userRepository.save(user); // when - Optional foundUser = userRepository.findByUsername(user.getUsername()); + User foundUser = userRepository.findByUsername(user.getUsername()).get(); // then - assertThat(foundUser.get()) - .extracting("id", "username", "password", "nickname", "gender", "birthdate", "profileDescription", - "imageUrl", "lastRequestAt", "position", "rating", "visitedCnt", "reviewCnt", "isSeekingTeam", - "isTemporaryPassword", "isNotified", "createdAt", "updatedAt") - .containsExactly(user.getId(), user.getUsername(), user.getPassword(), user.getNickname(), - user.getGender(), user.getBirthdate(), user.getProfileDescription(), user.getImageUrl(), - user.getLastRequestAt(), user.getPosition(), user.getRating(), user.getVisitedCnt(), - user.getReviewCnt(), user.getIsSeekingTeam(), user.getIsTemporaryPassword(), - user.getIsNotified(), user.getCreatedAt(), user.getUpdatedAt()); + assertThat(foundUser).isEqualTo(user); } @Test @@ -93,18 +76,10 @@ void givenValid_whenFindByNickname_thenReturn() { userRepository.save(user); // when - Optional foundUser = userRepository.findByNickname(user.getNickname()); + User foundUser = userRepository.findByNickname(user.getNickname()).get(); // then - assertThat(foundUser.get()) - .extracting("id", "username", "password", "nickname", "gender", "birthdate", "profileDescription", - "imageUrl", "lastRequestAt", "position", "rating", "visitedCnt", "reviewCnt", "isSeekingTeam", - "isTemporaryPassword", "isNotified", "createdAt", "updatedAt") - .containsExactly(user.getId(), user.getUsername(), user.getPassword(), user.getNickname(), - user.getGender(), user.getBirthdate(), user.getProfileDescription(), user.getImageUrl(), - user.getLastRequestAt(), user.getPosition(), user.getRating(), user.getVisitedCnt(), - user.getReviewCnt(), user.getIsSeekingTeam(), user.getIsTemporaryPassword(), - user.getIsNotified(), user.getCreatedAt(), user.getUpdatedAt()); + assertThat(foundUser).isEqualTo(user); } @Test @@ -178,18 +153,13 @@ void givenNonePosition_whenFindPage_thenReturn() { Position position = Position.NONE; // when - Page users = userRepository.findPage(position, pageFrom, pageSize); + PageData> users = userRepository.findPage(position, pageFrom, pageSize); // then - assertThat(users.getContent()) - .extracting("id", "username", "nickname", "position") - .containsExactly( - tuple(user3.getId(), user3.getUsername(), user3.getNickname(), user3.getPosition()), - tuple(user2.getId(), user2.getUsername(), user2.getNickname(), user2.getPosition()) - ); - - assertEquals(pageSize, users.getSize()); - assertEquals(3, users.getTotalElements()); + assertAll( + () -> assertThat(users.getData()).containsExactly(user3, user2), + () -> assertThat(users.getTotal()).isEqualTo(3L) + ); } @Test @@ -218,18 +188,31 @@ void givenPosition_whenFindPage_thenReturn() { Position position = Position.BACKEND; // when - Page users = userRepository.findPage(position, pageFrom, pageSize); + PageData> users = userRepository.findPage(position, pageFrom, pageSize); // then - assertThat(users.getContent()) - .extracting("id", "username", "nickname", "position") - .containsExactly( - tuple(user2.getId(), user2.getUsername(), user2.getNickname(), user2.getPosition()), - tuple(user1.getId(), user1.getUsername(), user1.getNickname(), user1.getPosition()) - ); - - assertEquals(pageSize, users.getSize()); - assertEquals(2, users.getTotalElements()); + assertAll( + () -> assertThat(users.getData()).containsExactly(user2, user1), + () -> assertThat(users.getTotal()).isEqualTo(2L) + ); + } + + @Test + @DisplayName("결과가 없는 회원 페이징 조회를 한다.") + void givenNoResult_whenFindPage_thenReturn() { + // given + long pageFrom = Long.MAX_VALUE; + int pageSize = 1; + Position position = Position.NONE; + + // when + PageData> users = userRepository.findPage(position, pageFrom, pageSize); + + // then + assertAll( + () -> assertThat(users.getData()).isEmpty(), + () -> assertThat(users.getTotal()).isEqualTo(0L) + ); } @Test @@ -242,12 +225,26 @@ void givenValid_whenFindSeekingTeam_thenReturn() { userRepository.save(user); // when - Optional foundUser = userRepository.findSeekingTeam(user.getId()); + User foundUser = userRepository.findSeekingTeam(user.getId()).get(); + + // then + assertThat(foundUser).isEqualTo(user); + } + + @Test + @DisplayName("이메일로 회원 단건 조회를 한다.") + void givenValid_whenFind_thenReturn() { + // given + Contact contact = createContact("tester@gabojait.com"); + contactRepository.save(contact); + User user = createUser("tester", "테스터", contact); + userRepository.save(user); + + // when + User foundUser = userRepository.find(contact.getEmail()).get(); // then - assertThat(foundUser.get()) - .extracting("id", "username", "nickname", "position", "isSeekingTeam") - .contains(user.getId(), user.getUsername(), user.getNickname(), user.getPosition(), true); + assertThat(foundUser).isEqualTo(user); } private User createUser(String username, String nickname, Contact contact) { diff --git a/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRoleRepositoryTest.java b/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRoleRepositoryTest.java index ee48a6c6..db58e080 100644 --- a/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRoleRepositoryTest.java +++ b/src/test/java/com/gabojait/gabojaitspring/repository/user/UserRoleRepositoryTest.java @@ -25,8 +25,8 @@ class UserRoleRepositoryTest { @Autowired private ContactRepository contactRepository; @Test - @DisplayName("회원 아이디로 전체 권한 조회를 한다.") - void givenValid_whenFindAll_thenReturn() { + @DisplayName("존재하는 회원 아이디로 전체 권한 조회를 한다.") + void givenExisting_whenFindAll_thenReturn() { // given User user = createSavedDefaultUser("tester@gabojait.com", "tester", "테스터"); Role role = Role.USER; @@ -38,19 +38,14 @@ void givenValid_whenFindAll_thenReturn() { // then assertAll( - () -> assertThat(userRoles) - .extracting("role") - .containsExactly(Role.USER), - () -> assertThat(userRoles.size()).isEqualTo(1), - () -> assertThat(userRoles) - .extracting("id", "createdAt", "updatedAt") - .isNotNull() + () -> assertThat(userRoles).containsExactly(userRole), + () -> assertThat(userRoles.size()).isEqualTo(1) ); } @Test @DisplayName("존재하지 않은 회원 아이디로 전체 권한 조회를 한다.") - void givenNonExistingUsername_whenFindAll_thenReturn() { + void givenNonExisting_whenFindAll_thenReturn() { // given String username = "tester";