|
|
|
@ -3,7 +3,7 @@ package org.tasks.time
|
|
|
|
import org.junit.Assert.*
|
|
|
|
import org.junit.Assert.*
|
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.Test
|
|
|
|
import org.tasks.Freeze
|
|
|
|
import org.tasks.Freeze
|
|
|
|
import java.util.*
|
|
|
|
import org.tasks.TestUtilities.withTZ
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
|
|
|
|
|
|
|
class DateTimeTest {
|
|
|
|
class DateTimeTest {
|
|
|
|
@ -21,39 +21,29 @@ class DateTimeTest {
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testWithMillisOfDayDuringDST() {
|
|
|
|
fun testWithMillisOfDayDuringDST() {
|
|
|
|
val def = TimeZone.getDefault()
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
try {
|
|
|
|
|
|
|
|
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"))
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
2,
|
|
|
|
2,
|
|
|
|
DateTime(2015, 10, 31, 2, 0, 0)
|
|
|
|
DateTime(2015, 10, 31, 2, 0, 0)
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(2).toInt())
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(2).toInt())
|
|
|
|
.hourOfDay)
|
|
|
|
.hourOfDay)
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
TimeZone.setDefault(def)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testWithMillisOfDayAfterDST() {
|
|
|
|
fun testWithMillisOfDayAfterDST() {
|
|
|
|
val def = TimeZone.getDefault()
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
try {
|
|
|
|
|
|
|
|
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"))
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
2,
|
|
|
|
2,
|
|
|
|
DateTime(2015, 11, 2, 2, 0, 0)
|
|
|
|
DateTime(2015, 11, 2, 2, 0, 0)
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(2).toInt())
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(2).toInt())
|
|
|
|
.hourOfDay)
|
|
|
|
.hourOfDay)
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
TimeZone.setDefault(def)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testWithMillisOfDayStartDST() {
|
|
|
|
fun testWithMillisOfDayStartDST() {
|
|
|
|
val def = TimeZone.getDefault()
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
try {
|
|
|
|
|
|
|
|
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"))
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
1,
|
|
|
|
1,
|
|
|
|
DateTime(2015, 3, 8, 0, 0, 0)
|
|
|
|
DateTime(2015, 3, 8, 0, 0, 0)
|
|
|
|
@ -81,16 +71,12 @@ class DateTimeTest {
|
|
|
|
DateTime(2015, 3, 8, 0, 0, 0)
|
|
|
|
DateTime(2015, 3, 8, 0, 0, 0)
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(3).toInt())
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(3).toInt())
|
|
|
|
.millis)
|
|
|
|
.millis)
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
TimeZone.setDefault(def)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testWithMillisOfDayEndDST() {
|
|
|
|
fun testWithMillisOfDayEndDST() {
|
|
|
|
val def = TimeZone.getDefault()
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
try {
|
|
|
|
|
|
|
|
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"))
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
1,
|
|
|
|
1,
|
|
|
|
DateTime(2015, 11, 1, 0, 0, 0)
|
|
|
|
DateTime(2015, 11, 1, 0, 0, 0)
|
|
|
|
@ -106,8 +92,6 @@ class DateTimeTest {
|
|
|
|
DateTime(2015, 11, 1, 0, 0, 0)
|
|
|
|
DateTime(2015, 11, 1, 0, 0, 0)
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(3).toInt())
|
|
|
|
.withMillisOfDay(TimeUnit.HOURS.toMillis(3).toInt())
|
|
|
|
.hourOfDay)
|
|
|
|
.hourOfDay)
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
TimeZone.setDefault(def)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -323,18 +307,40 @@ class DateTimeTest {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testToUTC() {
|
|
|
|
fun toUTC() {
|
|
|
|
val def = TimeZone.getDefault()
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
try {
|
|
|
|
|
|
|
|
TimeZone.setDefault(TimeZone.getTimeZone("America/Chicago"))
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
DateTime(2015, 10, 6, 14, 45, 15, 0, TimeZone.getTimeZone("GMT")),
|
|
|
|
DateTime(2015, 10, 6, 14, 45, 15, 0, DateTime.UTC),
|
|
|
|
DateTime(2015, 10, 6, 9, 45, 15).toUTC())
|
|
|
|
DateTime(2015, 10, 6, 9, 45, 15).toUTC())
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
TimeZone.setDefault(def)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
fun fromUTC() {
|
|
|
|
|
|
|
|
withTZ("America/Chicago") {
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 10, 56, 15, 423),
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 16, 56, 15, 423, DateTime.UTC).toLocal()
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
fun dontAdjustLocal() {
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 10, 56, 15, 423),
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 10, 56, 15, 423).toLocal()
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
fun dontAdjustUTC() {
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 16, 56, 15, 423, DateTime.UTC),
|
|
|
|
|
|
|
|
DateTime(2021, 1, 27, 16, 56, 15, 423, DateTime.UTC).toUTC()
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun testStartOfMinute() {
|
|
|
|
fun testStartOfMinute() {
|
|
|
|
assertEquals(
|
|
|
|
assertEquals(
|
|
|
|
|