-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #164 from nhnacademy-be4-ckin/feat/grade
[TEST] Grade 관련 테스트 코드
- Loading branch information
Showing
7 changed files
with
1,385 additions
and
1 deletion.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
412 changes: 412 additions & 0 deletions
412
src/test/java/store/ckin/api/address/controller/AddressControllerTest.java
Large diffs are not rendered by default.
Oops, something went wrong.
153 changes: 153 additions & 0 deletions
153
src/test/java/store/ckin/api/address/repository/AddressRepositoryTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
package store.ckin.api.address.repository; | ||
|
||
import static org.junit.jupiter.api.Assertions.assertFalse; | ||
import static org.junit.jupiter.api.Assertions.assertTrue; | ||
|
||
import java.time.LocalDate; | ||
import java.time.LocalDateTime; | ||
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.boot.test.autoconfigure.orm.jpa.DataJpaTest; | ||
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; | ||
import store.ckin.api.address.entity.Address; | ||
import store.ckin.api.grade.entity.Grade; | ||
import store.ckin.api.member.entity.Member; | ||
|
||
/** | ||
* AddressRepository 테스트 코드 입니다. | ||
* | ||
* @author : jinwoolee | ||
* @version : 2024. 03. 21. | ||
*/ | ||
@DataJpaTest | ||
class AddressRepositoryTest { | ||
@Autowired | ||
private TestEntityManager entityManager; | ||
|
||
@Autowired | ||
private AddressRepository addressRepository; | ||
|
||
private Member member; | ||
|
||
@BeforeEach | ||
void setUp() { | ||
Grade grade = Grade.builder() | ||
.id(1L) | ||
.name("일반") | ||
.pointRatio(10) | ||
.condition(0) | ||
.build(); | ||
|
||
entityManager.persist(grade); | ||
|
||
member = Member.builder() | ||
.grade(grade) | ||
.email("[email protected]") | ||
.password("1234") | ||
.name("tester") | ||
.contact("01012341234") | ||
.birth(LocalDate.of(2024, 1, 1)) | ||
.state(Member.State.ACTIVE) | ||
.latestLoginAt(LocalDateTime.now()) | ||
.role(Member.Role.MEMBER) | ||
.point(5000) | ||
.accumulateAmount(0) | ||
.build(); | ||
|
||
entityManager.persist(member); | ||
} | ||
|
||
@Test | ||
@DisplayName("중복된 주소가 있는지 확인") | ||
void testDuplicateAddress() { | ||
Address address = Address.builder() | ||
.member(member) | ||
.postCode("12345") | ||
.base("광주") | ||
.detail("광역시") | ||
.alias("광산구") | ||
.build(); | ||
|
||
addressRepository.save(address); | ||
|
||
assertTrue(addressRepository.existsByMemberIdAndBaseAndDetail( | ||
member.getId(), | ||
"광주", | ||
"광역시" | ||
)); | ||
assertFalse(addressRepository.existsByMemberIdAndBaseAndDetail( | ||
member.getId(), | ||
"광주", | ||
"광산구" | ||
)); | ||
} | ||
|
||
@Test | ||
@DisplayName("특정 멤버 주소 중 기본 주소가 있는지 확인") | ||
void testFindDefaultAddressByMemberId() { | ||
Address address = Address.builder() | ||
.member(member) | ||
.postCode("12345") | ||
.base("광주") | ||
.detail("광역시") | ||
.alias("광산구") | ||
.isDefault(false) | ||
.build(); | ||
|
||
addressRepository.save(address); | ||
|
||
|
||
assertTrue(addressRepository | ||
.findDefaultAddressByMemberId(member.getId()) | ||
.isEmpty()); | ||
|
||
address.toggleDefault(); | ||
entityManager.merge(address); | ||
|
||
assertTrue(addressRepository | ||
.findDefaultAddressByMemberId(member.getId()) | ||
.isPresent()); | ||
} | ||
|
||
@Test | ||
@DisplayName("주소 ID와 멤버 ID로 주소 조회") | ||
void testFindByIdAndMemberId() { | ||
Address address = Address.builder() | ||
.member(member) | ||
.postCode("12345") | ||
.base("광주") | ||
.detail("광역시") | ||
.alias("광산구") | ||
.build(); | ||
|
||
Address savedAddress = addressRepository.save(address); | ||
|
||
assertTrue(addressRepository | ||
.findByIdAndMember_Id(savedAddress.getId(), member.getId()) | ||
.isPresent()); | ||
assertTrue(addressRepository | ||
.findByIdAndMember_Id(savedAddress.getId(), member.getId() + 1L) | ||
.isEmpty()); | ||
} | ||
|
||
@Test | ||
@DisplayName("주소 ID와 멤버 ID로 주소 존재 여부 확인") | ||
void testExistsByIdAndMemberId() { | ||
Address address = Address.builder() | ||
.member(member) | ||
.postCode("12345") | ||
.base("광주") | ||
.detail("광역시") | ||
.alias("광산구") | ||
.build(); | ||
|
||
Address savedAddress = addressRepository.save(address); | ||
|
||
assertTrue(addressRepository | ||
.existsByIdAndMember_Id(savedAddress.getId(), member.getId())); | ||
assertFalse(addressRepository | ||
.existsByIdAndMember_Id(savedAddress.getId(), member.getId() + 1L)); | ||
} | ||
} |
Oops, something went wrong.