generated from pricelees/issue-pr-template
refactor: PaymentCancelResponseDeserializer 테스트 코틀린 마이그레이션
This commit is contained in:
parent
4af6c86cfb
commit
2fca7b2cd1
@ -1,54 +1,35 @@
|
||||
package roomescape.payment.web.support;
|
||||
package roomescape.payment.web.support
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule
|
||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||
import io.kotest.assertions.assertSoftly
|
||||
import io.kotest.core.spec.style.StringSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
import roomescape.payment.SampleTossPaymentConst
|
||||
import roomescape.payment.web.dto.response.PaymentCancelResponse
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
class PaymentCancelResponseDeserializerTest : StringSpec({
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||
val objectMapper: ObjectMapper = jacksonObjectMapper().registerModule(
|
||||
SimpleModule().addDeserializer(
|
||||
PaymentCancelResponse::class.java,
|
||||
PaymentCancelResponseDeserializer()
|
||||
)
|
||||
)
|
||||
|
||||
import roomescape.payment.web.dto.response.PaymentCancelResponse;
|
||||
"결제 취소 응답을 역직렬화하여 PaymentCancelResponse 객체를 생성한다" {
|
||||
val cancelResponseJson: String = SampleTossPaymentConst.cancelJson
|
||||
val cancelResponse: PaymentCancelResponse = objectMapper.readValue(
|
||||
cancelResponseJson,
|
||||
PaymentCancelResponse::class.java
|
||||
)
|
||||
|
||||
class PaymentCancelResponseDeserializerTest {
|
||||
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
objectMapper = new ObjectMapper();
|
||||
SimpleModule simpleModule = new SimpleModule();
|
||||
simpleModule.addDeserializer(PaymentCancelResponse.class, new PaymentCancelResponseDeserializer());
|
||||
objectMapper.registerModule(simpleModule);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("결제 취소 정보를 역직렬화하여 PaymentCancelResponse 객체를 생성한다.")
|
||||
void deserialize() {
|
||||
// given
|
||||
String json = """
|
||||
{
|
||||
"notUsedField": "notUsedValue",
|
||||
"cancels": [
|
||||
{
|
||||
"cancelStatus": "CANCELLED",
|
||||
"cancelReason": "테스트 결제 취소",
|
||||
"cancelAmount": 10000,
|
||||
"canceledAt": "2021-07-01T10:10:10+09:00",
|
||||
"notUsedField": "notUsedValue"
|
||||
}
|
||||
]
|
||||
}""";
|
||||
|
||||
// when
|
||||
PaymentCancelResponse response = assertDoesNotThrow(
|
||||
() -> objectMapper.readValue(json, PaymentCancelResponse.class));
|
||||
|
||||
// then
|
||||
assertEquals("CANCELLED", response.cancelStatus());
|
||||
assertEquals("테스트 결제 취소", response.cancelReason());
|
||||
assertEquals(10000, response.cancelAmount());
|
||||
assertEquals("2021-07-01T10:10:10+09:00", response.canceledAt().toString());
|
||||
}
|
||||
}
|
||||
assertSoftly(cancelResponse) {
|
||||
cancelResponse.cancelStatus shouldBe "DONE"
|
||||
cancelResponse.cancelReason shouldBe SampleTossPaymentConst.cancelReason
|
||||
cancelResponse.cancelAmount shouldBe SampleTossPaymentConst.amount
|
||||
cancelResponse.canceledAt.toString() shouldBe "2024-02-13T12:20:23+09:00"
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user