fix(agent-assignment): 소속 시각 UTC 변환을 적용한다

This commit is contained in:
2026-04-13 11:23:25 +09:00
parent 08ba6a6046
commit f357d426d0
4 changed files with 87 additions and 7 deletions

View File

@@ -0,0 +1,37 @@
package kr.co.vividnext.sodalive.extensions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.fail
import org.junit.jupiter.api.Test
import java.time.LocalDateTime
import java.time.ZoneId
class LocalDateTimeExtensionsTest {
@Test
fun shouldConvertToUtcUsingKstByDefault() {
val localDateTime = LocalDateTime.of(2026, 4, 9, 10, 0)
val utcDateTime = invokeConvertToUtc(localDateTime)
assertEquals(LocalDateTime.of(2026, 4, 9, 1, 0), utcDateTime)
}
@Test
fun shouldConvertToUtcUsingProvidedTimezone() {
val localDateTime = LocalDateTime.of(2026, 4, 9, 10, 0)
val utcDateTime = invokeConvertToUtc(localDateTime, ZoneId.of("Asia/Bangkok"))
assertEquals(LocalDateTime.of(2026, 4, 9, 3, 0), utcDateTime)
}
private fun invokeConvertToUtc(localDateTime: LocalDateTime, timeZone: ZoneId = ZoneId.of("Asia/Seoul")): LocalDateTime {
return try {
val method = Class.forName("kr.co.vividnext.sodalive.extensions.LocalDateTimeExtensionsKt")
.getMethod("convertToUtc", LocalDateTime::class.java, ZoneId::class.java)
method.invoke(null, localDateTime, timeZone) as LocalDateTime
} catch (e: ReflectiveOperationException) {
fail("LocalDateTime.convertToUtc 확장함수를 찾을 수 없습니다.")
}
}
}