From 92d78711fda98917ba366703476a1186676437e9 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Wed, 12 Mar 2025 17:15:05 +0900 Subject: [PATCH 1/6] =?UTF-8?q?test:=20thumbnail=20=EA=B4=80=EB=A0=A8=20Re?= =?UTF-8?q?pository=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InvitationThumbnailRepositoryTest.kt | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt index 1000f9b..03472d7 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationthumbnail/repository/InvitationThumbnailRepositoryTest.kt @@ -1,6 +1,7 @@ package site.yourevents.invitationthumbnail.repository import io.kotest.core.spec.style.DescribeSpec +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.jdbc.EmbeddedDatabaseConnection @@ -22,7 +23,7 @@ import site.yourevents.member.repository.MemberJPARepository class InvitationThumbnailRepositoryTest( @Autowired private val invitationThumbnailJPARepository: InvitationThumbnailJPARepository, @Autowired private val invitationJPARepository: InvitationJPARepository, - @Autowired private val memberJPARepository: MemberJPARepository + @Autowired private val memberJPARepository: MemberJPARepository, ) : DescribeSpec({ val invitationThumbnailRepository = InvitationThumbnailRepository(invitationThumbnailJPARepository) @@ -62,15 +63,41 @@ class InvitationThumbnailRepositoryTest( } describe("InvitationThumbnailRepository") { - it("save() 메서드를 통해 InvitationThumbnail을 저장하고 반환해야 한다") { - val savedThumbnail = invitationThumbnailRepository.save(invitationThumbnailVO) + context("findByInvitation() 메서드에서") { + it("저장된 InvitationThumbnail을 조회해야 한다") { + val savedThumbnail = invitationThumbnailRepository.save(invitationThumbnailVO) + val foundThumbnail = invitationThumbnailRepository.findByInvitation(savedThumbnail.invitation) + foundThumbnail.shouldNotBeNull() - savedThumbnail.url shouldBe invitationThumbnailVO.url - savedThumbnail.invitation.id shouldBe invitationThumbnailVO.invitation.id - savedThumbnail.invitation.member.socialId shouldBe memberEntity.toDomain().socialId - savedThumbnail.invitation.member.email shouldBe memberEntity.toDomain().email - savedThumbnail.invitation.member.nickname shouldBe memberEntity.toDomain().nickname + foundThumbnail.url shouldBe invitationThumbnailVO.url + foundThumbnail.invitation.id shouldBe invitationThumbnailVO.invitation.id + } + it("InvitationThumbnail이 없는 경우 null을 반환해야 한다") { + val newInvitationEntity = InvitationEntity( + member = memberEntity, + qrUrl = "http://example.org", + templateKey = "newTemplate", + deleted = false + ) + invitationJPARepository.save(newInvitationEntity) + + val foundThumbnail = invitationThumbnailRepository.findByInvitation(newInvitationEntity.toDomain()) + foundThumbnail shouldBe null + } + } + + context("save() 메서드에서") { + it("InvitationThumbnail을 저장하고 반환해야 한다") { + val savedThumbnail = invitationThumbnailRepository.save(invitationThumbnailVO) + + savedThumbnail.url shouldBe invitationThumbnailVO.url + savedThumbnail.invitation.id shouldBe invitationThumbnailVO.invitation.id + savedThumbnail.invitation.member.socialId shouldBe memberEntity.toDomain().socialId + savedThumbnail.invitation.member.email shouldBe memberEntity.toDomain().email + savedThumbnail.invitation.member.nickname shouldBe memberEntity.toDomain().nickname + + } } } }) From 9fd6429fbb190e0b3ce0ed41c03b9c6723b3b1bb Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Wed, 12 Mar 2025 17:18:40 +0900 Subject: [PATCH 2/6] =?UTF-8?q?test:=20information=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?Repository=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InvitationInformationRepositoryTest.kt | 58 ++++++++++++++----- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index d656b8f..71350c5 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -1,6 +1,7 @@ package site.yourevents.invitationinformation.repository import io.kotest.core.spec.style.DescribeSpec +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.jdbc.EmbeddedDatabaseConnection @@ -21,7 +22,7 @@ import java.time.LocalDateTime class InvitationInformationRepositoryTest( @Autowired private val invitationInformationJPARepository: InvitationInformationJPARepository, @Autowired private val invitationJPARepository: InvitationJPARepository, - @Autowired private val memberJPARepository: MemberJPARepository + @Autowired private val memberJPARepository: MemberJPARepository, ) : DescribeSpec({ val invitationInformationRepository = InvitationInformationRepository(invitationInformationJPARepository) @@ -64,20 +65,49 @@ class InvitationInformationRepositoryTest( } describe("InvitationInformationRepository") { - it("save() 메서드를 통해 InvitationInformation을 저장하고 반환해야 한다") { - val savedInfo = invitationInformationRepository.save(invitationInformationVO) + context("findByInvitation() 메서드에서") { + it("저장된 InvitationInformation을 조회해야 한다") { + val savedInfo = invitationInformationRepository.save(invitationInformationVO) + val foundInfo = invitationInformationRepository.findByInvitation(savedInfo.invitation) - savedInfo.title shouldBe invitationInformationVO.title - savedInfo.schedule shouldBe invitationInformationVO.schedule - savedInfo.location shouldBe invitationInformationVO.location - savedInfo.remark shouldBe invitationInformationVO.remark - savedInfo.invitation.id shouldBe invitationEntity.id - savedInfo.invitation.qrUrl shouldBe invitationEntity.qrUrl - savedInfo.invitation.templateKey shouldBe invitationEntity.templateKey - savedInfo.invitation.deleted shouldBe invitationEntity.deleted - savedInfo.invitation.member.socialId shouldBe memberEntity.toDomain().socialId - savedInfo.invitation.member.nickname shouldBe memberEntity.toDomain().nickname - savedInfo.invitation.member.email shouldBe memberEntity.toDomain().email + foundInfo.shouldNotBeNull() + + foundInfo.title shouldBe invitationInformationVO.title + foundInfo.location shouldBe invitationInformationVO.location + foundInfo.remark shouldBe invitationInformationVO.remark + foundInfo.invitation.id shouldBe invitationEntity.id + } + + it("InvitationInformation이 없는 경우 null을 반환해야 한다") { + val newInvitationEntity = InvitationEntity( + member = memberEntity, + qrUrl = "http://example.org", + templateKey = "newTemplate", + deleted = false + ) + invitationJPARepository.save(newInvitationEntity) + + val foundInfo = invitationInformationRepository.findByInvitation(newInvitationEntity.toDomain()) + foundInfo shouldBe null + } + } + + context("save() 메서드에서") { + it("InvitationInformation을 저장하고 반환해야 한다") { + val savedInfo = invitationInformationRepository.save(invitationInformationVO) + + savedInfo.title shouldBe invitationInformationVO.title + savedInfo.schedule shouldBe invitationInformationVO.schedule + savedInfo.location shouldBe invitationInformationVO.location + savedInfo.remark shouldBe invitationInformationVO.remark + savedInfo.invitation.id shouldBe invitationEntity.id + savedInfo.invitation.qrUrl shouldBe invitationEntity.qrUrl + savedInfo.invitation.templateKey shouldBe invitationEntity.templateKey + savedInfo.invitation.deleted shouldBe invitationEntity.deleted + savedInfo.invitation.member.socialId shouldBe memberEntity.toDomain().socialId + savedInfo.invitation.member.nickname shouldBe memberEntity.toDomain().nickname + savedInfo.invitation.member.email shouldBe memberEntity.toDomain().email + } } } }) From 3600e6f0facc41924fb233fc8f681eb80b8372ea Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Wed, 12 Mar 2025 17:29:27 +0900 Subject: [PATCH 3/6] =?UTF-8?q?test:=20informainRepository=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20findByInvitation()=20?= =?UTF-8?q?schedule=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/InvitationInformationRepositoryTest.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index 71350c5..cefe7e4 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -15,6 +15,7 @@ import site.yourevents.member.domain.MemberVO import site.yourevents.member.entity.MemberEntity import site.yourevents.member.repository.MemberJPARepository import java.time.LocalDateTime +import java.time.temporal.ChronoUnit @ActiveProfiles("test") @DataJpaTest @@ -73,6 +74,7 @@ class InvitationInformationRepositoryTest( foundInfo.shouldNotBeNull() foundInfo.title shouldBe invitationInformationVO.title + foundInfo.schedule.truncatedTo(ChronoUnit.MICROS) shouldBe invitationInformationVO.schedule.truncatedTo(ChronoUnit.MICROS) foundInfo.location shouldBe invitationInformationVO.location foundInfo.remark shouldBe invitationInformationVO.remark foundInfo.invitation.id shouldBe invitationEntity.id From 34891a38750e00c3dbf9d6bdb68ebd725013203d Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Wed, 12 Mar 2025 18:00:07 +0900 Subject: [PATCH 4/6] =?UTF-8?q?test:=20InformationRepository=20test?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20schedule=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/InvitationInformationRepositoryTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index cefe7e4..19b5679 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -74,7 +74,7 @@ class InvitationInformationRepositoryTest( foundInfo.shouldNotBeNull() foundInfo.title shouldBe invitationInformationVO.title - foundInfo.schedule.truncatedTo(ChronoUnit.MICROS) shouldBe invitationInformationVO.schedule.truncatedTo(ChronoUnit.MICROS) + foundInfo.schedule.truncatedTo(ChronoUnit.MILLIS) shouldBe invitationInformationVO.schedule.truncatedTo(ChronoUnit.MILLIS) foundInfo.location shouldBe invitationInformationVO.location foundInfo.remark shouldBe invitationInformationVO.remark foundInfo.invitation.id shouldBe invitationEntity.id From ac20037ba25ff797cf8641a5c14d9c68bd69c95c Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Fri, 14 Mar 2025 00:43:32 +0900 Subject: [PATCH 5/6] =?UTF-8?q?test:=20InvitationInformationRepository=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20LocalDateTim?= =?UTF-8?q?e=20=EA=B3=A0=EC=A0=95=EB=90=9C=20=EA=B0=92=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/InvitationInformationRepositoryTest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index 19b5679..969fdd7 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -53,7 +53,7 @@ class InvitationInformationRepositoryTest( invitationInformationVO = InvitationInformationVO( invitation = invitationEntity.toDomain(), title = "title", - schedule = LocalDateTime.now(), + schedule = LocalDateTime.of(2025, 3, 14, 12, 0, 0), location = "location", remark = "remark" ) @@ -74,7 +74,7 @@ class InvitationInformationRepositoryTest( foundInfo.shouldNotBeNull() foundInfo.title shouldBe invitationInformationVO.title - foundInfo.schedule.truncatedTo(ChronoUnit.MILLIS) shouldBe invitationInformationVO.schedule.truncatedTo(ChronoUnit.MILLIS) + foundInfo.schedule shouldBe invitationInformationVO.schedule foundInfo.location shouldBe invitationInformationVO.location foundInfo.remark shouldBe invitationInformationVO.remark foundInfo.invitation.id shouldBe invitationEntity.id From aae3656fb3bfad19553bbc59642b2def4675cd55 Mon Sep 17 00:00:00 2001 From: 1winhyun Date: Fri, 14 Mar 2025 00:46:59 +0900 Subject: [PATCH 6/6] =?UTF-8?q?test:=20InvitationInformationRepository=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=ED=95=84?= =?UTF-8?q?=EC=9A=94=EC=97=86=EB=8A=94=20import=EB=AC=B8=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/InvitationInformationRepositoryTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt index 969fdd7..3f4112b 100644 --- a/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt +++ b/module-infrastructure/persistence-db/src/test/kotlin/site/yourevents/invitationinformation/repository/InvitationInformationRepositoryTest.kt @@ -15,7 +15,6 @@ import site.yourevents.member.domain.MemberVO import site.yourevents.member.entity.MemberEntity import site.yourevents.member.repository.MemberJPARepository import java.time.LocalDateTime -import java.time.temporal.ChronoUnit @ActiveProfiles("test") @DataJpaTest