Merge branch 'feature/file-extensions-test' into feature/remove-jvm-dateutils

pull/1120/head
sgallese 4 years ago
commit 4b92735a8b

@ -68,6 +68,12 @@ class DateUtilsTest : BaseUnitTest() {
assertThat(expectedUnixTimeForSydney, equalTo(localTimeInMillis)) assertThat(expectedUnixTimeForSydney, equalTo(localTimeInMillis))
} }
@Test
fun testGetWeekdaySequence() {
val weekdaySequence = LocalDate.getWeekdaySequence(3)
assertThat(arrayOf(3, 4, 5, 6, 7, 1, 2), equalTo(weekdaySequence))
}
@Test @Test
fun testGetFirstWeekdayNumberAccordingToLocale_germany() { fun testGetFirstWeekdayNumberAccordingToLocale_germany() {
LocalDate.fixedLocale = Locale.forLanguageTag("de-de") LocalDate.fixedLocale = Locale.forLanguageTag("de-de")
@ -117,28 +123,61 @@ class DateUtilsTest : BaseUnitTest() {
assertThat(Timestamp(FIXED_LOCAL_TIME), equalTo(today)) assertThat(Timestamp(FIXED_LOCAL_TIME), equalTo(today))
} }
@Test
fun testGetStartOfDay() {
val expectedStartOfDayUtc = fixedStartOfToday()
val laterInTheDayUtc = fixedStartOfTodayWithOffset(20)
val startOfDay = LocalDate.getStartOfDay(laterInTheDayUtc)
assertThat(expectedStartOfDayUtc, equalTo(startOfDay))
}
@Test
fun testGetStartOfToday() {
val expectedStartOfDayUtc = fixedStartOfToday()
val laterInTheDayUtc = fixedStartOfTodayWithOffset(20)
LocalDate.fixedLocalTime = laterInTheDayUtc
val startOfToday = LocalDate.getStartOfToday()
assertThat(expectedStartOfDayUtc, equalTo(startOfToday))
}
@Test @Test
fun testGetStartOfTomorrowWithOffset_priorToOffset() { fun testGetStartOfTomorrowWithOffset_priorToOffset() {
val hourOffset = 3 val priorToOffset = HOUR_OFFSET - 1
setStartDayOffset(hourOffset, 0) testGetStartOfTomorrowWithOffset(priorToOffset)
LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC
val startOfTomorrowWithOffset = unixTime(2017, Calendar.JANUARY, 1, hourOffset, 0)
val priorToOffset = unixTime(2017, Calendar.JANUARY, 1, hourOffset - 1, 0)
LocalDate.fixedLocalTime = priorToOffset
val startOfTomorrow = DateUtils.getStartOfTomorrowWithOffset()
assertThat(startOfTomorrowWithOffset, equalTo(startOfTomorrow))
} }
@Test @Test
fun testGetStartOfTomorrowWithOffset_afterOffset() { fun testGetStartOfTomorrowWithOffset_afterOffset() {
val hourOffset = 3 val afterOffset = HOUR_OFFSET + 1 - HOURS_IN_ONE_DAY
setStartDayOffset(hourOffset, 0) testGetStartOfTomorrowWithOffset(afterOffset)
LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC }
val startOfTomorrowWithOffset = unixTime(2017, Calendar.JANUARY, 2, hourOffset, 0)
val afterOffset = unixTime(2017, Calendar.JANUARY, 1, hourOffset + 1, 0) private fun testGetStartOfTomorrowWithOffset(startOfTodayOffset: Int) {
LocalDate.fixedLocalTime = afterOffset configureOffsetTest(startOfTodayOffset)
val startOfTomorrow = DateUtils.getStartOfTomorrowWithOffset() assertThat(
assertThat(startOfTomorrowWithOffset, equalTo(startOfTomorrow)) fixedStartOfTodayWithOffset(HOUR_OFFSET),
equalTo(DateUtils.getStartOfTomorrowWithOffset())
)
}
@Test
fun testGetStartOfTodayWithOffset_priorToOffset() {
val priorToOffset = HOURS_IN_ONE_DAY + HOUR_OFFSET - 1
testGetStartOfTodayWithOffset(priorToOffset)
}
@Test
fun testGetStartOfTodayWithOffset_afterOffset() {
val afterOffset = HOUR_OFFSET + 1
testGetStartOfTodayWithOffset(afterOffset)
}
private fun testGetStartOfTodayWithOffset(startOfTodayOffset: Int) {
configureOffsetTest(startOfTodayOffset)
assertThat(
fixedStartOfToday(),
equalTo(LocalDate.getStartOfTodayWithOffset())
)
} }
@Test @Test
@ -233,22 +272,31 @@ class DateUtilsTest : BaseUnitTest() {
assertThat(expected, equalTo(truncate(field, Timestamp(nonTruncatedDate), firstWeekday))) assertThat(expected, equalTo(truncate(field, Timestamp(nonTruncatedDate), firstWeekday)))
} }
@Test
fun testGetUpcomingTimeInMillis() {
LocalDate.fixedLocalTime = FIXED_LOCAL_TIME
LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC
val expected = unixTime(2015, Calendar.JANUARY, 25, 10, 1)
val upcomingTimeMillis = LocalDate.getUpcomingTimeInMillis(10, 1)
assertThat(expected, equalTo(upcomingTimeMillis))
}
@Test @Test
@Throws(Exception::class) @Throws(Exception::class)
fun testMillisecondsUntilTomorrow() { fun testMillisecondsUntilTomorrow() {
LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC
LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 1, 23, 59) LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 1, 23, 59)
assertThat(millisecondsUntilTomorrowWithOffset(), equalTo(MINUTE_LENGTH)) assertThat(millisecondsUntilTomorrowWithOffset(), equalTo(MINUTE_LENGTH))
LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 1, 20, 0) LocalDate.fixedLocalTime = fixedStartOfTodayWithOffset(20)
assertThat( assertThat(
millisecondsUntilTomorrowWithOffset(), millisecondsUntilTomorrowWithOffset(),
equalTo(4 * HOUR_LENGTH) equalTo(4 * HOUR_LENGTH)
) )
setStartDayOffset(3, 30) setStartDayOffset(HOUR_OFFSET, 30)
LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 1, 23, 59) LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 1, 23, 59)
assertThat( assertThat(
millisecondsUntilTomorrowWithOffset(), millisecondsUntilTomorrowWithOffset(),
equalTo(3 * HOUR_LENGTH + 31 * MINUTE_LENGTH) equalTo(HOUR_OFFSET * HOUR_LENGTH + 31 * MINUTE_LENGTH)
) )
LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 2, 1, 0) LocalDate.fixedLocalTime = unixTime(2017, Calendar.JANUARY, 2, 1, 0)
assertThat( assertThat(
@ -258,31 +306,49 @@ class DateUtilsTest : BaseUnitTest() {
} }
@Test @Test
fun testGetStartOfTodayCalendarWithOffset_priorToOffset() { fun testGetStartOfTodayCalendar() {
val hourOffset = 3 LocalDate.fixedLocalTime = FIXED_LOCAL_TIME
setStartDayOffset(hourOffset, 0)
val priorToOffset = unixTime(2017, Calendar.JANUARY, 2, hourOffset - 1, 0)
LocalDate.fixedLocalTime = priorToOffset
LocalDate.fixedLocale = Locale.forLanguageTag("de-de") LocalDate.fixedLocale = Locale.forLanguageTag("de-de")
val startOfYesterday = unixTime(2017, Calendar.JANUARY, 2, 0, 0) val expectedStartOfDay = unixTime(2015, Calendar.JANUARY, 25, 0, 0)
val expectedCalendar = GregorianCalendar(TimeZone.getTimeZone("GMT"), java.util.Locale.GERMANY) val expectedCalendar = GregorianCalendar(TimeZone.getTimeZone("GMT"), java.util.Locale.GERMANY)
expectedCalendar.timeInMillis = startOfYesterday expectedCalendar.timeInMillis = expectedStartOfDay
val startOfTodayCalendar = DateUtils.getStartOfTodayCalendar() val startOfTodayCalendar = DateUtils.getStartOfTodayCalendar()
assertThat(expectedCalendar, equalTo(startOfTodayCalendar)) assertThat(expectedCalendar, equalTo(startOfTodayCalendar))
} }
@Test
fun testGetStartOfTodayCalendarWithOffset_priorToOffset() {
val priorToOffset = HOUR_OFFSET - 1
testGetStartOfTodayCalendarWithOffset(priorToOffset)
}
@Test @Test
fun testGetStartOfTodayCalendarWithOffset_afterOffset() { fun testGetStartOfTodayCalendarWithOffset_afterOffset() {
val hourOffset = 3 val afterOffset = HOUR_OFFSET + 1
setStartDayOffset(hourOffset, 0) testGetStartOfTodayCalendarWithOffset(afterOffset)
val afterOffset = unixTime(2017, Calendar.JANUARY, 1, hourOffset + 1, 0) }
LocalDate.fixedLocalTime = afterOffset
private fun testGetStartOfTodayCalendarWithOffset(startOfTodayOffset: Int) {
configureOffsetTest(startOfTodayOffset)
LocalDate.fixedLocale = Locale.forLanguageTag("de-de") LocalDate.fixedLocale = Locale.forLanguageTag("de-de")
val startOfToday = unixTime(2017, Calendar.JANUARY, 1, 0, 0)
val expectedCalendar = GregorianCalendar(TimeZone.getTimeZone("GMT"), java.util.Locale.GERMANY) val expectedCalendar = GregorianCalendar(TimeZone.getTimeZone("GMT"), java.util.Locale.GERMANY)
expectedCalendar.timeInMillis = startOfToday expectedCalendar.timeInMillis = fixedStartOfToday()
val startOfTodayCalendar = DateUtils.getStartOfTodayCalendar() assertThat(
assertThat(expectedCalendar, equalTo(startOfTodayCalendar)) expectedCalendar,
equalTo(DateUtils.getStartOfTodayCalendar())
)
}
private fun configureOffsetTest(startOfTodayOffset: Int) {
setStartDayOffset(HOUR_OFFSET, 0)
LocalDate.fixedTimeZone = kotlinx.datetime.TimeZone.UTC
LocalDate.fixedLocalTime = fixedStartOfTodayWithOffset(startOfTodayOffset)
}
private fun fixedStartOfToday() = fixedStartOfTodayWithOffset(0)
private fun fixedStartOfTodayWithOffset(hourOffset: Int): Long {
return unixTime(2017, Calendar.JANUARY, 1, hourOffset, 0)
} }
@Test @Test
@ -295,4 +361,9 @@ class DateUtilsTest : BaseUnitTest() {
equalTo(Timestamp(FIXED_LOCAL_TIME - DAY_LENGTH)) equalTo(Timestamp(FIXED_LOCAL_TIME - DAY_LENGTH))
) )
} }
companion object {
const val HOUR_OFFSET = 3
const val HOURS_IN_ONE_DAY = 24
}
} }

Loading…
Cancel
Save