generated from pricelees/issue-pr-template
[#48] Tosspay mocking 서버 구현을 위한 멀티모듈 전환 #49
@ -0,0 +1,25 @@
|
|||||||
|
package com.sangdol.common.utils
|
||||||
|
|
||||||
|
import org.slf4j.MDC
|
||||||
|
|
||||||
|
object MdcStartTimeUtil {
|
||||||
|
const val MDC_START_TIME_KEY = "start_time"
|
||||||
|
|
||||||
|
fun extractDurationMsOrNull(): Long? {
|
||||||
|
return extractOrNull()?.let { System.currentTimeMillis() - it }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setCurrentTime() {
|
||||||
|
extractOrNull() ?: run {
|
||||||
|
MDC.put(MDC_START_TIME_KEY, System.currentTimeMillis().toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun clear() {
|
||||||
|
MDC.remove(MDC_START_TIME_KEY)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun extractOrNull(): Long? {
|
||||||
|
return MDC.get(MDC_START_TIME_KEY)?.toLong()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.sangdol.common.utils
|
||||||
|
|
||||||
|
import io.kotest.core.spec.style.FunSpec
|
||||||
|
import io.kotest.matchers.nulls.shouldNotBeNull
|
||||||
|
import io.kotest.matchers.shouldBe
|
||||||
|
|
||||||
|
class MdcStartTimeUtilTest : FunSpec({
|
||||||
|
|
||||||
|
test("기존에 등록된 startTime 값을 기준으로 duration_ms를 구한다.") {
|
||||||
|
MdcStartTimeUtil.setCurrentTime()
|
||||||
|
MdcStartTimeUtil.extractDurationMsOrNull().shouldNotBeNull()
|
||||||
|
MdcStartTimeUtil.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
test("기존에 등록된 startTime 값이 없으면 duration_ms는 null이다.") {
|
||||||
|
MdcStartTimeUtil.extractDurationMsOrNull() shouldBe null
|
||||||
|
}
|
||||||
|
|
||||||
|
test("현재 시간을 등록한다.") {
|
||||||
|
MdcStartTimeUtil.setCurrentTime()
|
||||||
|
MdcStartTimeUtil.extractDurationMsOrNull().shouldNotBeNull()
|
||||||
|
MdcStartTimeUtil.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
test("등록된 시간을 지운다.") {
|
||||||
|
MdcStartTimeUtil.setCurrentTime().also {
|
||||||
|
MdcStartTimeUtil.extractDurationMsOrNull().shouldNotBeNull()
|
||||||
|
}
|
||||||
|
|
||||||
|
MdcStartTimeUtil.clear().also {
|
||||||
|
MdcStartTimeUtil.extractDurationMsOrNull() shouldBe null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
Loading…
x
Reference in New Issue
Block a user