Use PrettyTime's new formatUnrounded(OffsetDateTime) method.

Also change the types of the relevant variables from Calendar to OffsetDateTime.
This commit is contained in:
Isira Seneviratne 2020-12-20 09:53:05 +05:30
parent 8cf4ba25f5
commit 74e20a8c52
7 changed files with 16 additions and 98 deletions

View file

@ -1,30 +0,0 @@
package org.schabi.newpipe.ktx
import org.junit.Assert.assertEquals
import org.junit.Test
import java.time.LocalDate
import java.time.OffsetDateTime
import java.time.ZoneOffset
import java.util.Calendar
import java.util.TimeZone
class OffsetDateTimeToCalendarTest {
@Test
fun testRelativeTimeWithCurrentOffsetDateTime() {
val calendar = LocalDate.of(2020, 1, 1).atStartOfDay().atOffset(ZoneOffset.UTC)
.toCalendar()
assertEquals(2020, calendar[Calendar.YEAR])
assertEquals(0, calendar[Calendar.MONTH])
assertEquals(1, calendar[Calendar.DAY_OF_MONTH])
assertEquals(0, calendar[Calendar.HOUR])
assertEquals(0, calendar[Calendar.MINUTE])
assertEquals(0, calendar[Calendar.SECOND])
assertEquals(TimeZone.getTimeZone("UTC"), calendar.timeZone)
}
@Test(expected = IllegalArgumentException::class)
fun testRelativeTimeWithFarOffOffsetDateTime() {
OffsetDateTime.MAX.minusYears(1).toCalendar()
}
}

View file

@ -3,34 +3,22 @@ package org.schabi.newpipe.util
import org.junit.Assert.assertEquals
import org.junit.Test
import org.ocpsoft.prettytime.PrettyTime
import java.text.SimpleDateFormat
import java.time.LocalDate
import java.time.OffsetDateTime
import java.time.ZoneOffset
import java.util.GregorianCalendar
import java.util.Locale
class LocalizationTest {
@Test
fun `After initializing pretty time relativeTime() with a Calendar must work`() {
val reference = SimpleDateFormat("yyyy/MM/dd").parse("2021/1/1")
Localization.initPrettyTime(PrettyTime(reference, Locale.ENGLISH))
val actual = Localization.relativeTime(GregorianCalendar(2021, 1, 6))
// yes this assertion is true, even if it should be 5 days, it works as it is. Future research required.
assertEquals("1 month from now", actual)
}
@Test(expected = NullPointerException::class)
fun `relativeTime() must fail without initializing pretty time`() {
Localization.relativeTime(GregorianCalendar(2021, 1, 6))
Localization.relativeTime(OffsetDateTime.of(2021, 1, 6, 0, 0, 0, 0, ZoneOffset.UTC))
}
@Test
fun `relativeTime() with a OffsetDateTime must work`() {
val reference = SimpleDateFormat("yyyy/MM/dd").parse("2021/1/1")
Localization.initPrettyTime(PrettyTime(reference, Locale.ENGLISH))
val prettyTime = PrettyTime(LocalDate.of(2021, 1, 1), ZoneOffset.UTC)
prettyTime.locale = Locale.ENGLISH
Localization.initPrettyTime(prettyTime)
val offset = OffsetDateTime.of(2021, 1, 6, 0, 0, 0, 0, ZoneOffset.UTC)
val actual = Localization.relativeTime(offset)