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;
|
class PaymentCancelResponseDeserializerTest : StringSpec({
|
||||||
import org.junit.jupiter.api.DisplayName;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
val objectMapper: ObjectMapper = jacksonObjectMapper().registerModule(
|
||||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
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 {
|
assertSoftly(cancelResponse) {
|
||||||
|
cancelResponse.cancelStatus shouldBe "DONE"
|
||||||
private ObjectMapper objectMapper;
|
cancelResponse.cancelReason shouldBe SampleTossPaymentConst.cancelReason
|
||||||
|
cancelResponse.cancelAmount shouldBe SampleTossPaymentConst.amount
|
||||||
@BeforeEach
|
cancelResponse.canceledAt.toString() shouldBe "2024-02-13T12:20:23+09:00"
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user