Skip to content

Commit

Permalink
test : JD 상세 정보 조회 API 응답값 수정에 의한 테스트 코드 수정 및 추가(#157)
Browse files Browse the repository at this point in the history
  • Loading branch information
isprogrammingfun committed May 23, 2024
1 parent 75b0379 commit 4b604a3
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.bamyanggang.apimodule.domain.jobDescription.application

import com.bamyanggang.apimodule.domain.jobDescription.application.dto.JobDescriptionInfo
import com.bamyanggang.apimodule.domain.jobDescription.application.service.JobDescriptionInfoGetService
import com.bamyanggang.commonmodule.fixture.generateFixture
import com.bamyanggang.domainmodule.domain.jobDescription.aggregate.JobDescription
import com.bamyanggang.domainmodule.domain.jobDescription.enums.WriteStatus
import com.bamyanggang.domainmodule.domain.jobDescription.service.ApplyReader
import com.bamyanggang.domainmodule.domain.jobDescription.service.JobDescriptionReader
import io.kotest.core.spec.style.BehaviorSpec
import io.kotest.matchers.shouldBe
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
Expand All @@ -14,9 +17,52 @@ import java.util.*

class JobDescriptionInfoGetServiceTest : BehaviorSpec({
val jobDescriptionReader = mockk<JobDescriptionReader>()
val jobDescriptionInfoGetService = JobDescriptionInfoGetService(jobDescriptionReader)
val applyReader = mockk<ApplyReader>()
val jobDescriptionInfoGetService = JobDescriptionInfoGetService(jobDescriptionReader, applyReader)

Given("jobDescriptionId가 들어온 경우") {
Given("jobDescription의 writeStatus가 CLOSED인 경우") {
val jobDescriptionId = UUID.randomUUID()
val jobDescription : JobDescription = generateFixture {
it.set("enterpriseName", "기업 이름")
it.set("title", "직무 공고 제목")
it.set("content", "직무 공고 내용")
it.set("link", "직무 공고 링크")
it.set("writeStatus", WriteStatus.CLOSED)
it.set("startedAt", LocalDateTime.now())
it.set("endedAt", LocalDateTime.now().plusDays(1))
}
every { jobDescriptionReader.readJobDescriptionById(jobDescriptionId) } returns jobDescription
every { applyReader.readApplyExists(jobDescriptionId) } returns true

When("getJobDescriptionDetail가 호출된다") {
val result = jobDescriptionInfoGetService.getJobDescriptionDetail(jobDescriptionId)

Then("jobDescriptionReader.readJobDescriptionById가 호출된다") {
verify { jobDescriptionReader.readJobDescriptionById(jobDescriptionId) }
}

And("applyReader.readApplyExists가 호출된다") {
verify { applyReader.readApplyExists(jobDescriptionId) }
}

And("예상된 JobDescriptionInfo.Response.Detail 객체가 반환된다") {
result shouldBe JobDescriptionInfo.Response.Detail(
jobDescription.getRemainingDate(),
jobDescription.enterpriseName,
jobDescription.title,
jobDescription.content,
jobDescription.link,
jobDescription.writeStatus,
jobDescription.createdAt,
jobDescription.startedAt,
jobDescription.endedAt,
true
)
}
}
}

Given("jobDescription의 writeStatus가 WRITING인 경우") {
val jobDescriptionId = UUID.randomUUID()
val jobDescription : JobDescription = generateFixture {
it.set("enterpriseName", "기업 이름")
Expand All @@ -30,12 +76,32 @@ class JobDescriptionInfoGetServiceTest : BehaviorSpec({
every { jobDescriptionReader.readJobDescriptionById(jobDescriptionId) } returns jobDescription

When("getJobDescriptionDetail가 호출된다") {
jobDescriptionInfoGetService.getJobDescriptionDetail(jobDescriptionId)
val result = jobDescriptionInfoGetService.getJobDescriptionDetail(jobDescriptionId)

Then("jobDescriptionReader.readJobDescriptionById가 호출된다") {
verify { jobDescriptionReader.readJobDescriptionById(jobDescriptionId) }
}

And("applyReader.readApplyExists는 호출되지 않는다") {
verify(exactly = 0) { applyReader.readApplyExists(jobDescriptionId) }
}

And("예상된 JobDescriptionInfo.Response.Detail 객체가 반환된다") {
result shouldBe JobDescriptionInfo.Response.Detail(
jobDescription.getRemainingDate(),
jobDescription.enterpriseName,
jobDescription.title,
jobDescription.content,
jobDescription.link,
jobDescription.writeStatus,
jobDescription.createdAt,
jobDescription.startedAt,
jobDescription.endedAt,
true
)
}
}
}


})
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,8 @@ class JobDescriptionControllerTest : BaseRestDocsTest() {
fieldWithPath("writeStatus").description("작성 상태. NOT_APPLIED(칩 없음, 작성 전), WRITING(작성 중), WRITTEN(작성 완료), CLOSED(마감)"),
fieldWithPath("createdAt").description("생성일"),
fieldWithPath("startedAt").description("시작일"),
fieldWithPath("endedAt").description("종료일")
fieldWithPath("endedAt").description("종료일"),
fieldWithPath("isApplyExists").description("자기소개서 작성 여부")
)
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,16 @@ class ApplyReaderTest: BehaviorSpec({
}
}

given("ApplyReader.readApplyExists") {
val jobDescriptionId: UUID = UUID.randomUUID()
`when`("jobDescriptionId가 주어지면") {
applyReader.readApplyExists(jobDescriptionId)
then("applyRepository.existsByJobDescriptionId가 호출된다.") {
verify {
applyRepository.existsByJobDescriptionId(jobDescriptionId)
}
}
}
}

})

0 comments on commit 4b604a3

Please sign in to comment.