Best Kotest code snippet using io.kotest.matchers.date.instant.Instant.shouldBeBetween
DateMatchersTest.kt
Source:DateMatchersTest.kt  
1package com.sksamuel.kotest.matchers.date2import io.kotest.assertions.shouldFail3import io.kotest.assertions.throwables.shouldThrow4import io.kotest.core.spec.style.StringSpec5import io.kotest.matchers.date.after6import io.kotest.matchers.date.atSameZone7import io.kotest.matchers.date.before8import io.kotest.matchers.date.haveSameDay9import io.kotest.matchers.date.haveSameHours10import io.kotest.matchers.date.haveSameInstantAs11import io.kotest.matchers.date.haveSameMinutes12import io.kotest.matchers.date.haveSameMonth13import io.kotest.matchers.date.haveSameNanos14import io.kotest.matchers.date.haveSameSeconds15import io.kotest.matchers.date.haveSameYear16import io.kotest.matchers.date.shouldBeAfter17import io.kotest.matchers.date.shouldBeBefore18import io.kotest.matchers.date.shouldBeBetween19import io.kotest.matchers.date.shouldBeToday20import io.kotest.matchers.date.shouldBeWithin21import io.kotest.matchers.date.shouldHaveDayOfMonth22import io.kotest.matchers.date.shouldHaveDayOfWeek23import io.kotest.matchers.date.shouldHaveDayOfYear24import io.kotest.matchers.date.shouldHaveHour25import io.kotest.matchers.date.shouldHaveMinute26import io.kotest.matchers.date.shouldHaveMonth27import io.kotest.matchers.date.shouldHaveNano28import io.kotest.matchers.date.shouldHaveSameDayAs29import io.kotest.matchers.date.shouldHaveSameHoursAs30import io.kotest.matchers.date.shouldHaveSameInstantAs31import io.kotest.matchers.date.shouldHaveSameMinutesAs32import io.kotest.matchers.date.shouldHaveSameMonthAs33import io.kotest.matchers.date.shouldHaveSameNanosAs34import io.kotest.matchers.date.shouldHaveSameSecondsAs35import io.kotest.matchers.date.shouldHaveSameYearAs36import io.kotest.matchers.date.shouldHaveSecond37import io.kotest.matchers.date.shouldNotBeAfter38import io.kotest.matchers.date.shouldNotBeBefore39import io.kotest.matchers.date.shouldNotBeBetween40import io.kotest.matchers.date.shouldNotBeToday41import io.kotest.matchers.date.shouldNotBeWithin42import io.kotest.matchers.date.shouldNotHaveSameDayAs43import io.kotest.matchers.date.shouldNotHaveSameHoursAs44import io.kotest.matchers.date.shouldNotHaveSameInstantAs45import io.kotest.matchers.date.shouldNotHaveSameMinutesAs46import io.kotest.matchers.date.shouldNotHaveSameMonthAs47import io.kotest.matchers.date.shouldNotHaveSameNanosAs48import io.kotest.matchers.date.shouldNotHaveSameSecondsAs49import io.kotest.matchers.date.shouldNotHaveSameYearAs50import io.kotest.matchers.date.within51import io.kotest.matchers.shouldBe52import io.kotest.matchers.should53import io.kotest.matchers.shouldNot54import io.kotest.matchers.shouldNotBe55import java.time.DayOfWeek.SATURDAY56import java.time.Duration57import java.time.LocalDate58import java.time.LocalDateTime59import java.time.LocalTime60import java.time.Month61import java.time.OffsetDateTime62import java.time.Period63import java.time.ZoneId64import java.time.ZoneOffset65import java.time.ZonedDateTime66class DateMatchersTest : StringSpec() {67  init {68    "LocalTime should have same nanos ignoring other fields" {69      LocalTime.of(1, 2, 3, 4) should haveSameNanos(LocalTime.of(5, 6, 7, 4))70      LocalTime.of(1, 2, 3, 4) shouldNot haveSameNanos(LocalTime.of(1, 2, 3, 8))71      LocalTime.of(1, 2, 3, 4).shouldHaveSameNanosAs(LocalTime.of(5, 6, 7, 4))72      LocalTime.of(1, 2, 3, 4).shouldNotHaveSameNanosAs(LocalTime.of(1, 2, 3, 8))73    }74    "LocalTime should have same seconds ignoring other fields" {75      LocalTime.of(1, 2, 3, 4) should haveSameSeconds(LocalTime.of(5, 6, 3, 4))76      LocalTime.of(1, 2, 3, 4) shouldNot haveSameSeconds(LocalTime.of(1, 2, 5, 4))77      LocalTime.of(1, 2, 3, 4).shouldHaveSameSecondsAs(LocalTime.of(5, 6, 3, 4))78      LocalTime.of(1, 2, 3, 4).shouldNotHaveSameSecondsAs(LocalTime.of(1, 2, 5, 4))79    }80    "LocalTime should have same minutes ignoring other fields" {81      LocalTime.of(1, 2, 3, 4) should haveSameMinutes(LocalTime.of(5, 2, 7, 8))82      LocalTime.of(1, 2, 3, 4) shouldNot haveSameMinutes(LocalTime.of(1, 5, 3, 4))83      LocalTime.of(1, 2, 3, 4).shouldHaveSameMinutesAs(LocalTime.of(5, 2, 7, 8))84      LocalTime.of(1, 2, 3, 4).shouldNotHaveSameMinutesAs(LocalTime.of(1, 5, 3, 4))85    }86    "LocalTime should have same hours ignoring other fields" {87      LocalTime.of(12, 1, 2, 7777) should haveSameHours(LocalTime.of(12, 59, 58, 9999))88      LocalTime.of(3, 59, 58, 9999) shouldNot haveSameHours(LocalTime.of(12, 59, 58, 9999))89      LocalTime.of(12, 1, 2, 7777).shouldHaveSameHoursAs(LocalTime.of(12, 59, 58, 9999))90      LocalTime.of(3, 59, 58, 9999).shouldNotHaveSameHoursAs(LocalTime.of(12, 59, 58, 9999))91    }92    "LocalDate should have same year ignoring other fields" {93      LocalDate.of(2014, 1, 2) should haveSameYear(LocalDate.of(2014, 5, 6))94      LocalDate.of(2014, 1, 2) shouldNot haveSameYear(LocalDate.of(2018, 5, 6))95      LocalDate.of(2014, 1, 2).shouldHaveSameYearAs(LocalDate.of(2014, 5, 6))96      LocalDate.of(2014, 1, 2).shouldNotHaveSameYearAs(LocalDate.of(2018, 5, 6))97    }98    "LocalDateTime should have same year ignoring other fields" {99      LocalDateTime.of(2014, 1, 2, 4, 3, 2) should haveSameYear(LocalDateTime.of(2014, 5, 6, 3, 2, 1))100      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNot haveSameYear(LocalDateTime.of(2018, 5, 6, 3, 2, 1))101      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldHaveSameYearAs(LocalDateTime.of(2014, 5, 6, 3, 2, 1))102      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotHaveSameYearAs(LocalDateTime.of(2018, 5, 6, 3, 2, 1))103    }104    "ZonedDateTime should have same year ignoring other fields" {105      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) should haveSameYear(LocalDateTime.of(2014, 5, 6, 3, 2, 1).atZone(ZoneId.of("Z")))106      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNot haveSameYear(LocalDateTime.of(2018, 5, 6, 3, 2, 1).atZone(ZoneId.of("Z")))107      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldHaveSameYearAs(LocalDateTime.of(2014, 5, 6, 3, 2, 1).atZone(ZoneId.of("Z")))108      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotHaveSameYearAs(LocalDateTime.of(2018, 5, 6, 3, 2, 1).atZone(ZoneId.of("Z")))109    }110    "OffsetDateTime should have same year ignoring other fields" {111      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) should haveSameYear(LocalDateTime.of(2014, 5, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))112      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNot haveSameYear(LocalDateTime.of(2018, 5, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))113      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldHaveSameYearAs(LocalDateTime.of(2014, 5, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))114      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotHaveSameYearAs(LocalDateTime.of(2018, 5, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))115    }116    "LocalDate should have same month ignoring other fields" {117      LocalDate.of(2014, 1, 2) should haveSameMonth(LocalDate.of(2016, 1, 6))118      LocalDate.of(2014, 1, 2) shouldNot haveSameMonth(LocalDate.of(2018, 4, 6))119      LocalDate.of(2014, 1, 2).shouldHaveSameMonthAs(LocalDate.of(2016, 1, 6))120      LocalDate.of(2014, 1, 2).shouldNotHaveSameMonthAs(LocalDate.of(2018, 4, 6))121    }122    "LocalDateTime should have same month ignoring other fields" {123      LocalDateTime.of(2014, 1, 2, 4, 3, 2) should haveSameMonth(LocalDateTime.of(2014, 1, 6, 3, 2, 1))124      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNot haveSameMonth(LocalDateTime.of(2018, 2, 6, 3, 2, 1))125      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldHaveSameMonthAs(LocalDateTime.of(2014, 1, 6, 3, 2, 1))126      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotHaveSameMonthAs(LocalDateTime.of(2018, 2, 6, 3, 2, 1))127    }128    "ZonedDateTime should have same month ignoring other fields" {129      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) should haveSameMonth(LocalDateTime.of(2014, 1, 6, 3, 2, 1).atZone(ZoneId.of("Z")))130      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNot haveSameMonth(LocalDateTime.of(2018, 2, 6, 3, 2, 1).atZone(ZoneId.of("Z")))131      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldHaveSameMonthAs(LocalDateTime.of(2014, 1, 6, 3, 2, 1).atZone(ZoneId.of("Z")))132      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotHaveSameMonthAs(LocalDateTime.of(2018, 2, 6, 3, 2, 1).atZone(ZoneId.of("Z")))133    }134    "OffsetDateTime should have same month ignoring other fields" {135      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) should haveSameMonth(LocalDateTime.of(2014, 1, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))136      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNot haveSameMonth(LocalDateTime.of(2018, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))137      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldHaveSameMonthAs(LocalDateTime.of(2014, 1, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))138      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotHaveSameMonthAs(LocalDateTime.of(2018, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))139    }140    "LocalDate should have same day ignoring other fields" {141      LocalDate.of(2014, 1, 2) should haveSameDay(LocalDate.of(2014, 1, 2))142      LocalDate.of(2014, 1, 2) shouldNot haveSameDay(LocalDate.of(2014, 4, 6))143      LocalDate.of(2014, 1, 2).shouldHaveSameDayAs(LocalDate.of(2014, 1, 2))144      LocalDate.of(2014, 1, 2).shouldNotHaveSameDayAs(LocalDate.of(2014, 4, 6))145    }146    "LocalDateTime should have same day ignoring other fields" {147      LocalDateTime.of(2014, 1, 2, 4, 3, 2) should haveSameDay(LocalDateTime.of(2014, 1, 2, 3, 2, 1))148      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNot haveSameDay(LocalDateTime.of(2014, 2, 6, 3, 2, 1))149      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldHaveSameDayAs(LocalDateTime.of(2014, 1, 2, 3, 2, 1))150      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotHaveSameDayAs(LocalDateTime.of(2014, 2, 6, 3, 2, 1))151    }152    "ZonedDateTime should have same day ignoring other fields" {153      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) should haveSameDay(LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")))154      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNot haveSameDay(LocalDateTime.of(2014, 2, 6, 3, 2, 1).atZone(ZoneId.of("Z")))155      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldHaveSameDayAs(LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")))156      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotHaveSameDayAs(LocalDateTime.of(2014, 2, 6, 3, 2, 1).atZone(ZoneId.of("Z")))157    }158    "OffsetDateTime should have same day ignoring other fields" {159      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) should haveSameDay(LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC))160      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNot haveSameDay(LocalDateTime.of(2014, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))161      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldHaveSameDayAs(LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC))162      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotHaveSameDayAs(LocalDateTime.of(2014, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))163    }164    "LocalTime shouldBe before" {165      LocalTime.of(1, 2, 3, 1000) shouldBe before(LocalTime.of(1, 10, 3, 1000))166      LocalTime.of(1, 2, 3, 1000) shouldNotBe before(LocalTime.of(1, 1, 3, 1000))167      LocalTime.of(1, 2, 3, 1000).shouldBeBefore(LocalTime.of(5, 2, 3, 1000))168      LocalTime.of(1, 2, 3, 1000).shouldNotBeBefore(LocalTime.of(0, 2, 3, 1000))169    }170    "LocalDate shouldBe before" {171      LocalDate.of(2014, 1, 2) shouldBe before(LocalDate.of(2014, 1, 3))172      LocalDate.of(2014, 1, 2) shouldNotBe before(LocalDate.of(2014, 1, 1))173      LocalDate.of(2014, 1, 2).shouldBeBefore(LocalDate.of(2014, 1, 3))174      LocalDate.of(2014, 1, 2).shouldNotBeBefore(LocalDate.of(2014, 1, 1))175    }176    "LocalDateTime shouldBe before" {177      LocalDateTime.of(2014, 1, 2, 4, 3, 2) shouldBe before(LocalDateTime.of(2014, 2, 2, 3, 2, 1))178      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNotBe before(LocalDateTime.of(2014, 1, 1, 3, 2, 1))179      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldBeBefore(LocalDateTime.of(2014, 2, 2, 3, 2, 1))180      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotBeBefore(LocalDateTime.of(2014, 1, 1, 3, 2, 1))181    }182    "ZonedDateTime shouldBe before" {183      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe before(LocalDateTime.of(2014, 1, 3, 3, 2, 1).atZone(ZoneId.of("Z")))184      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe before(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atZone(ZoneId.of("Z")))185      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeBefore(LocalDateTime.of(2014, 1, 3, 3, 2, 1).atZone(ZoneId.of("Z")))186      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeBefore(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atZone(ZoneId.of("Z")))187    }188    "ZonedDateTime shouldBe equal" {189      ZonedDateTime.of(2019, 12, 10, 10, 0, 0, 0, ZoneOffset.UTC) shouldBe190        ZonedDateTime.of(2019, 12, 10, 4, 0, 0, 0, ZoneId.of("America/Chicago")).atSameZone()191      shouldThrow<AssertionError> {192        ZonedDateTime.of(2019, 12, 10, 10, 0, 0, 0, ZoneOffset.UTC) shouldBe193          ZonedDateTime.of(2019, 12, 10, 4, 1, 0, 0, ZoneId.of("America/Chicago")).atSameZone()194      }.message shouldBe "expected:<2019-12-10T10:01Z> but was:<2019-12-10T10:00Z>"195    }196    "OffsetDateTime shouldBe before" {197      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) shouldBe before(LocalDateTime.of(2016, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC))198      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNotBe before(LocalDateTime.of(2012, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))199      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldBeBefore(LocalDateTime.of(2016, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC))200      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotBeBefore(LocalDateTime.of(2012, 2, 6, 3, 2, 1).atOffset(ZoneOffset.UTC))201    }202    "LocalTime shouldBe after" {203      LocalTime.of(1, 2, 3, 9999) shouldBe after(LocalTime.of(1, 2, 3, 1111))204      LocalTime.of(1, 2, 3, 1000) shouldNotBe after(LocalTime.of(1, 2, 10, 1000))205      LocalTime.of(1, 2, 3, 9999).shouldBeAfter(LocalTime.of(1, 2, 3, 1111))206      LocalTime.of(1, 2, 3, 1000).shouldNotBeAfter(LocalTime.of(1, 2, 10, 1000))207    }208    "LocalDate shouldBe after" {209      LocalDate.of(2014, 1, 2) shouldBe after(LocalDate.of(2013, 1, 3))210      LocalDate.of(2014, 1, 2) shouldNotBe after(LocalDate.of(2014, 1, 3))211      LocalDate.of(2014, 1, 2).shouldBeAfter(LocalDate.of(2013, 1, 3))212      LocalDate.of(2014, 1, 2).shouldNotBeAfter(LocalDate.of(2014, 1, 3))213    }214    "LocalDateTime shouldBe after" {215      LocalDateTime.of(2014, 1, 2, 4, 3, 2) shouldBe after(LocalDateTime.of(2014, 1, 1, 3, 2, 1))216      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNotBe after(LocalDateTime.of(2014, 1, 3, 3, 2, 1))217      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldBeAfter(LocalDateTime.of(2014, 1, 1, 3, 2, 1))218      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotBeAfter(LocalDateTime.of(2014, 1, 3, 3, 2, 1))219    }220    "ZonedDateTime shouldBe after" {221      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe after(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atZone(ZoneId.of("Z")))222      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe after(LocalDateTime.of(2014, 1, 3, 3, 2, 1).atZone(ZoneId.of("Z")))223      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeAfter(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atZone(ZoneId.of("Z")))224      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeAfter(LocalDateTime.of(2014, 1, 3, 3, 2, 1).atZone(ZoneId.of("Z")))225    }226    "OffsetDateTime shouldBe after" {227      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) shouldBe after(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))228      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNotBe after(LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))229      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldBeAfter(LocalDateTime.of(2014, 1, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))230      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotBeAfter(LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))231    }232    "LocalDate shouldBe within(period, date)" {233      LocalDate.of(2014, 1, 2) shouldBe within(Period.ofDays(3), LocalDate.of(2014, 1, 1))234      LocalDate.of(2014, 1, 2) shouldBe within(Period.ofDays(3), LocalDate.of(2014, 1, 5))235      LocalDate.of(2014, 1, 2) shouldNotBe within(Period.ofDays(3), LocalDate.of(2014, 1, 6))236      LocalDate.of(2014, 1, 2).shouldBeWithin(Period.ofDays(3), LocalDate.of(2014, 1, 5))237      LocalDate.of(2014, 1, 2).shouldNotBeWithin(Period.ofDays(3), LocalDate.of(2014, 1, 6))238    }239    "LocalDateTime shouldBe within(period, date)" {240      LocalDateTime.of(2014, 1, 2, 4, 3, 2) shouldBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2))241      LocalDateTime.of(2014, 1, 2, 3, 2, 1) shouldNotBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2))242      LocalDateTime.of(2014, 1, 2, 4, 3, 2).shouldBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2))243      LocalDateTime.of(2014, 1, 2, 3, 2, 1).shouldNotBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2))244    }245    "ZonedDateTime shouldBe within(period, date)" {246      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atZone(ZoneId.of("Z")))247      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 1, 4, 3, 2).atZone(ZoneId.of("Z")))248      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2).atZone(ZoneId.of("Z")))249      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2).atZone(ZoneId.of("Z")))250      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 1, 3, 2, 0).atZone(ZoneId.of("Z")))251      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atZone(ZoneId.of("Z")))252      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 1, 4, 3, 2).atZone(ZoneId.of("Z")))253      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2).atZone(ZoneId.of("Z")))254      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2).atZone(ZoneId.of("Z")))255      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 1, 3, 2, 0).atZone(ZoneId.of("Z")))256    }257    "ZonedDateTime shouldBe within(duration, date)" {258      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atZone(ZoneId.of("Z")))259      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 1, 4, 3, 2).atZone(ZoneId.of("Z")))260      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")) shouldBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2).atZone(ZoneId.of("Z")))261      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2).atZone(ZoneId.of("Z")))262      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")) shouldNotBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 1, 3, 2, 0).atZone(ZoneId.of("Z")))263      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atZone(ZoneId.of("Z")))264      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 1, 4, 3, 2).atZone(ZoneId.of("Z")))265      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atZone(ZoneId.of("Z")).shouldBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 2, 9, 3, 2).atZone(ZoneId.of("Z")))266      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 3, 2, 2).atZone(ZoneId.of("Z")))267      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atZone(ZoneId.of("Z")).shouldNotBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 1, 3, 2, 0).atZone(ZoneId.of("Z")))268    }269    "OffsetDateTime shouldBe within(period, date)" {270      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) shouldBe within(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atOffset(ZoneOffset.UTC))271      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNotBe within(Period.ofDays(1), LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))272      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atOffset(ZoneOffset.UTC))273      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotBeWithin(Period.ofDays(1), LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))274    }275    "OffsetDateTime shouldBe within(duration, date)" {276      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC) shouldBe within(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atOffset(ZoneOffset.UTC))277      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC) shouldNotBe within(Duration.ofDays(1), LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))278      LocalDateTime.of(2014, 1, 2, 4, 3, 2).atOffset(ZoneOffset.UTC).shouldBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 1, 3, 4, 3, 2).atOffset(ZoneOffset.UTC))279      LocalDateTime.of(2014, 1, 2, 3, 2, 1).atOffset(ZoneOffset.UTC).shouldNotBeWithin(Duration.ofDays(1), LocalDateTime.of(2014, 2, 1, 3, 2, 1).atOffset(ZoneOffset.UTC))280    }281    "LocalTime shouldBe between" {282      LocalTime.of(14, 20, 50, 1000).shouldBeBetween(LocalTime.of(14, 20, 49), LocalTime.of(14, 20, 51))283      LocalTime.of(14, 20, 50, 1000).shouldNotBeBetween(LocalTime.of(14, 20, 51), LocalTime.of(14, 20, 52))284    }285    "LocalDate shouldBe between" {286      LocalDate.of(2019, 2, 16).shouldBeBetween(LocalDate.of(2019, 2, 15), LocalDate.of(2019, 2, 17))287      LocalDate.of(2019, 2, 16).shouldNotBeBetween(LocalDate.of(2019, 2, 17), LocalDate.of(2019, 2, 18))288    }289    "LocalDateTime shouldBe between" {290      LocalDateTime.of(2019, 2, 16, 12, 0, 0).shouldBeBetween(LocalDateTime.of(2019, 2, 15, 12, 0, 0), LocalDateTime.of(2019, 2, 17, 12, 0, 0))291      LocalDateTime.of(2019, 2, 16, 12, 0, 0).shouldBeBetween(LocalDateTime.of(2019, 2, 16, 10, 0, 0), LocalDateTime.of(2019, 2, 16, 14, 0, 0))292      LocalDateTime.of(2019, 2, 16, 12, 0, 0).shouldNotBeBetween(LocalDateTime.of(2019, 2, 17, 12, 0, 0), LocalDateTime.of(2019, 2, 18, 12, 0, 0))293      LocalDateTime.of(2019, 2, 16, 12, 0, 0).shouldNotBeBetween(LocalDateTime.of(2019, 2, 16, 18, 0, 0), LocalDateTime.of(2019, 2, 16, 20, 0, 0))294    }295    "ZonedDateTime shouldBe between" {296      ZonedDateTime.of(2019, 2, 16, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")).shouldBeBetween(ZonedDateTime.of(2019, 2, 15, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")), ZonedDateTime.of(2019, 2, 17, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")))297      ZonedDateTime.of(2019, 2, 16, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")).shouldNotBeBetween(ZonedDateTime.of(2019, 2, 17, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")), ZonedDateTime.of(2019, 2, 18, 12, 0, 0, 0, ZoneId.of("America/Sao_Paulo")))298    }299    "OffsetDateTime shouldBe between" {300      OffsetDateTime.of(2019, 2, 16, 12, 0, 0, 0, ZoneOffset.ofHours(-3)).shouldBeBetween(OffsetDateTime.of(2019, 2, 15, 12, 0, 0, 0, ZoneOffset.ofHours(-3)), OffsetDateTime.of(2019, 2, 17, 12, 0, 0, 0, ZoneOffset.ofHours(-3)))301      OffsetDateTime.of(2019, 2, 15, 12, 0, 0, 0, ZoneOffset.ofHours(-3)).shouldNotBeBetween(OffsetDateTime.of(2019, 2, 16, 12, 0, 0, 0, ZoneOffset.ofHours(-3)), OffsetDateTime.of(2019, 2, 17, 12, 0, 0, 0, ZoneOffset.ofHours(-3)))302    }303    "LocalDate.shouldBeToday() should match today" {304      LocalDate.now().shouldBeToday()305    }306    "LocalDateTime.shouldBeToday() should match today" {307      LocalDateTime.now().shouldBeToday()308    }309    "LocalDate.shouldBeToday() should not match the past" {310      shouldFail {311        LocalDate.of(2002, Month.APRIL, 1).shouldBeToday()312      }313    }314    "LocalDateTime.shouldBeToday() should not match the past" {315      shouldFail {316        LocalDateTime.of(2002, Month.APRIL, 1, 5, 2).shouldBeToday()317      }318      shouldFail {319        LocalDateTime.now().minusDays(1).shouldBeToday()320      }321    }322    "LocalDateTime.shouldNotBeToday()" {323      LocalDateTime.of(2002, Month.APRIL, 1, 5, 2).shouldNotBeToday()324      shouldFail {325        LocalDateTime.now().shouldNotBeToday()326      }327    }328    "LocalDate.shouldNotBeToday()" {329      LocalDate.of(2002, Month.APRIL, 2).shouldNotBeToday()330      shouldFail {331        LocalDateTime.now().shouldNotBeToday()332      }333    }334    "LocalDateTime should have day of month (day)" {335      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveDayOfMonth 16336    }337    "LocalDateTime should have day of week" {338      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveDayOfWeek  SATURDAY339      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveDayOfWeek  6340    }341    "LocalDateTime should have day of year" {342      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveDayOfYear  47343    }344    "LocalDateTime should have month" {345      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveMonth 2346      LocalDateTime.of(2019, 2, 16, 12, 0, 0, 0) shouldHaveMonth Month.FEBRUARY347    }348    "LocalDateTime should have hour" {349      LocalDateTime.of(2019, 2, 16, 12, 10, 0, 0) shouldHaveHour 12350    }351    "LocalDateTime should have minute" {352      LocalDateTime.of(2019, 2, 16, 12, 10, 0, 0) shouldHaveMinute 10353    }354    "LocalDateTime should have second" {355      LocalDateTime.of(2019, 2, 16, 12, 10, 13, 0) shouldHaveSecond  13356    }357    "LocalDateTime should have nano" {358      LocalDateTime.of(2019, 2, 16, 12, 10, 0, 14) shouldHaveNano  14359    }360    "ZonedDateTime should be have same instant of the given ZonedDateTime irrespective of their timezone" {361       ZonedDateTime.of(2019, 2, 16, 11, 0, 0, 0, ZoneOffset.ofHours(-1)) should haveSameInstantAs(ZonedDateTime.of(2019, 2, 16, 9, 0, 0, 0, ZoneOffset.ofHours(-3)))362       ZonedDateTime.of(2019, 2, 16, 11, 0, 0, 0, ZoneOffset.ofHours(-1)) shouldHaveSameInstantAs ZonedDateTime.of(2019, 2, 16, 9, 0, 0, 0, ZoneOffset.ofHours(-3))363       ZonedDateTime.of(2019, 2, 16, 11, 0, 0, 0, ZoneOffset.ofHours(-1)) shouldNot haveSameInstantAs(ZonedDateTime.of(2019, 2, 16, 9, 0, 0, 0, ZoneOffset.ofHours(-2)))364       ZonedDateTime.of(2019, 2, 16, 11, 0, 0, 0, ZoneOffset.ofHours(-1)) shouldNotHaveSameInstantAs ZonedDateTime.of(2019, 2, 16, 9, 0, 0, 0, ZoneOffset.ofHours(-2))365    }366  }367}...TidspunktTest.kt
Source:TidspunktTest.kt  
1package no.nav.su.se.bakover.common2import io.kotest.matchers.comparables.shouldBeGreaterThan3import io.kotest.matchers.comparables.shouldBeLessThan4import io.kotest.matchers.comparables.shouldNotBeLessThan5import io.kotest.matchers.ints.shouldBeBetween6import io.kotest.matchers.shouldBe7import io.kotest.matchers.shouldNotBe8import io.kotest.matchers.types.shouldNotBeSameInstanceAs9import org.junit.jupiter.api.Test10import java.time.Clock11import java.time.Instant12import java.time.LocalDate13import java.time.Month14import java.time.ZoneOffset15import java.time.temporal.ChronoUnit16internal class TidspunktTest {17    private val instant = Instant.parse("1970-01-01T01:01:01.123456789Z")18    @Test19    fun `truncate instant to same format as repo, precision in micros`() {20        val tidspunkt = instant.toTidspunkt()21        ChronoUnit.MICROS.between(instant, tidspunkt) shouldBe 022        instant.toString().length.shouldNotBeLessThan(tidspunkt.toString().length)23        tidspunkt.nano % 1000 shouldBe 024        val addedMicrosInstant = instant.plus(251, ChronoUnit.MICROS)25        val addedMicrosTidspunkt = addedMicrosInstant.toTidspunkt()26        ChronoUnit.MICROS.between(addedMicrosInstant, addedMicrosTidspunkt) shouldBe 027        addedMicrosInstant.toString().length.shouldNotBeLessThan(addedMicrosTidspunkt.toString().length)28        addedMicrosTidspunkt.nano % 1000 shouldBe 029        val addedNanosInstant = instant.plusNanos(378)30        val addedNanosTidspunkt = addedNanosInstant.toTidspunkt()31        (addedNanosInstant.nano - addedNanosTidspunkt.nano).shouldBeBetween(1, 1000)32        addedNanosInstant shouldNotBe addedNanosTidspunkt.instant33        addedNanosTidspunkt shouldBe addedNanosInstant34        ChronoUnit.MICROS.between(addedNanosInstant, addedNanosTidspunkt) shouldBe 035        addedNanosInstant.toString().length.shouldNotBeLessThan(addedNanosTidspunkt.toString().length)36        addedNanosTidspunkt.nano % 1000 shouldBe 037    }38    @Test39    fun `should equal instant truncated to same precision`() {40        val instant = instant.plusNanos(515)41        val tidspunkt = instant.toTidspunkt()42        instant shouldNotBe tidspunkt.instant43        instant.truncatedTo(Tidspunkt.unit) shouldBe tidspunkt.instant44        tidspunkt shouldBe instant45        tidspunkt shouldBe instant.truncatedTo(Tidspunkt.unit)46        val othertidspunkt = instant.toTidspunkt()47        tidspunkt shouldBe othertidspunkt48        tidspunkt shouldBe tidspunkt49    }50    @Test51    fun comparison() {52        val startOfDayInstant = 1.januar(2020).atStartOfDay().toInstant(ZoneOffset.UTC)53        val endOfDayInstant = 1.januar(2020).plusDays(1).atStartOfDay().minusNanos(1).toInstant(ZoneOffset.UTC)54        val startOfDaytidspunkt = startOfDayInstant.toTidspunkt()55        val endOfDaytidspunkt = endOfDayInstant.toTidspunkt()56        startOfDayInstant shouldBeLessThan endOfDayInstant57        startOfDaytidspunkt.instant shouldBeLessThan endOfDaytidspunkt.instant58        startOfDayInstant shouldBeLessThan endOfDaytidspunkt.instant59        endOfDayInstant shouldBeGreaterThan startOfDaytidspunkt.instant60    }61    @Test62    fun `new instances for companions`() {63        val firstEpoch = Tidspunkt.EPOCH64        val secondEpoch = Tidspunkt.EPOCH65        firstEpoch shouldNotBeSameInstanceAs secondEpoch66        val firstMin = Tidspunkt.MIN67        val secondMin = Tidspunkt.MIN68        firstMin shouldNotBeSameInstanceAs secondMin69    }70    @Test71    fun `should serialize as instant`() {72        val start = 1.oktober(2020).endOfDay()73        val serialized = objectMapper.writeValueAsString(start)74        serialized shouldBe "\"2020-10-01T21:59:59.999999Z\"" // Denne serialiseres til json-streng istedenfor objekt75        val deserialized = objectMapper.readValue(serialized, Tidspunkt::class.java)76        deserialized shouldBe start77        val objSerialized = objectMapper.writeValueAsString(NestedSerialization(start))78        objSerialized shouldBe """{"tidspunkt":"2020-10-01T21:59:59.999999Z","other":"other values"}"""79        val objDeserialized = objectMapper.readValue(objSerialized, NestedSerialization::class.java)80        objDeserialized shouldBe NestedSerialization(start, "other values")81    }82    @Test83    fun now() {84        val fixedUTC = Clock.fixed(1.januar(2020).endOfDay(ZoneOffset.UTC).instant, ZoneOffset.UTC)85        val nowUTC = Tidspunkt.now(fixedUTC)86        nowUTC.toString() shouldBe "2020-01-01T23:59:59.999999Z"87        val fixedOslo = Clock.fixed(1.januar(2020).endOfDay(zoneIdOslo).instant, zoneIdOslo)88        val nowOslo = Tidspunkt.now(fixedOslo)89        nowOslo.toString() shouldBe "2020-01-01T22:59:59.999999Z"90    }91    @Test92    fun `konverterer tidspunkt til localDate`() {93        1.januar(2020).startOfDay(ZoneOffset.UTC).toLocalDate(ZoneOffset.UTC) shouldBe LocalDate.of(94            2020,95            Month.JANUARY,96            197        )98        1.januar(2020).endOfDay(ZoneOffset.UTC).toLocalDate(ZoneOffset.UTC) shouldBe LocalDate.of(99            2020,100            Month.JANUARY,101            1102        )103        1.januar(2020).startOfDay(zoneIdOslo).toLocalDate(zoneIdOslo) shouldBe LocalDate.of(2020, Month.JANUARY, 1)104        1.januar(2020).endOfDay(zoneIdOslo).toLocalDate(zoneIdOslo) shouldBe LocalDate.of(2020, Month.JANUARY, 1)105    }106    @Test107    fun `plusser på tid`() {108        Tidspunkt(instant).plus(1, ChronoUnit.DAYS).toString() shouldBe "1970-01-02T01:01:01.123456Z"109    }110    data class NestedSerialization(111        val tidspunkt: Tidspunkt,112        val other: String = "other values"113    )114}...timestampTest.kt
Source:timestampTest.kt  
1package com.sksamuel.kotest.matchers.date2import io.kotest.core.spec.style.FreeSpec3import io.kotest.matchers.date.shouldBeAfter4import io.kotest.matchers.date.shouldBeBefore5import io.kotest.matchers.date.shouldBeBetween6import io.kotest.matchers.date.shouldNotBeAfter7import io.kotest.matchers.date.shouldNotBeBefore8import io.kotest.matchers.date.shouldNotBeBetween9import io.kotest.matchers.shouldBe10import io.kotest.matchers.shouldNotBe11import java.sql.Timestamp12import java.time.Instant13class TimeStampTest : FreeSpec() {14   init {15      "two timestamp of same instance should be same" {16         val nowInstance = Instant.now()17         Timestamp.from(nowInstance) shouldBe Timestamp.from(nowInstance)18      }19      "two timestamp of different instance should be not be same" {20         val nowInstance = Instant.now()21         val anotherInstance = nowInstance.plusMillis(1000L)22         Timestamp.from(nowInstance) shouldNotBe Timestamp.from(anotherInstance)23      }24      "timestamp of current instance should be after the timestamp of past instance" {25         val nowInstance = Instant.now()26         val instanceBeforeFiveSecond = nowInstance.minusMillis(5000L)27         Timestamp.from(nowInstance) shouldBeAfter Timestamp.from(instanceBeforeFiveSecond)28      }29      "timestamp of current instance should not be after the timestamp of future instance" {30         val nowInstance = Instant.now()31         val instanceAfterFiveSecond = nowInstance.plusMillis(5000L)32         Timestamp.from(nowInstance) shouldNotBeAfter Timestamp.from(instanceAfterFiveSecond)33      }34      "timestamp of current instance should not be after the another timestamp of same instance" {35         val nowInstance = Instant.now()36         Timestamp.from(nowInstance) shouldNotBeAfter Timestamp.from(nowInstance)37      }38      "timestamp of current instance should be before the timestamp of future instance" {39         val nowInstance = Instant.now()40         val instanceAfterFiveSecond = nowInstance.plusMillis(5000L)41         Timestamp.from(nowInstance) shouldBeBefore Timestamp.from(instanceAfterFiveSecond)42      }43      "timestamp of current instance should not be before the timestamp of past instance" {44         val nowInstance = Instant.now()45         val instanceBeforeFiveSecond = nowInstance.minusMillis(5000L)46         Timestamp.from(nowInstance) shouldNotBeBefore Timestamp.from(instanceBeforeFiveSecond)47      }48      "timestamp of current instance should not be before the another timestamp of same instance" {49         val nowInstance = Instant.now()50         Timestamp.from(nowInstance) shouldNotBeBefore Timestamp.from(nowInstance)51      }52      "current timestamp should be between timestamp of past and future" {53         val nowInstant = Instant.now()54         val currentTimestamp = Timestamp.from(nowInstant)55         val pastTimestamp = Timestamp.from(nowInstant.minusMillis(5000))56         val futureTimestamp = Timestamp.from(nowInstant.plusMillis(5000))57         currentTimestamp.shouldBeBetween(pastTimestamp, futureTimestamp)58      }59      "past timestamp should not be between timestamp of current instant and future" {60         val nowInstant = Instant.now()61         val currentTimestamp = Timestamp.from(nowInstant)62         val pastTimestamp = Timestamp.from(nowInstant.minusMillis(5000))63         val futureTimestamp = Timestamp.from(nowInstant.plusMillis(5000))64         pastTimestamp.shouldNotBeBetween(currentTimestamp, futureTimestamp)65      }66      "future timestamp should not be between timestamp of current instant and future" {67         val nowInstant = Instant.now()68         val currentTimestamp = Timestamp.from(nowInstant)69         val pastTimestamp = Timestamp.from(nowInstant.minusMillis(5000))70         val futureTimestamp = Timestamp.from(nowInstant.plusMillis(5000))71         futureTimestamp.shouldNotBeBetween(pastTimestamp, currentTimestamp)72      }73   }74}...HistoryBTest.kt
Source:HistoryBTest.kt  
1package com.painkillergis.fall_color_history.snapshot2import com.painkillergis.fall_color_history.util.BFunSpec3import com.painkillergis.fall_color_history.util.toJsonObject4import io.kotest.matchers.date.shouldBeBetween5import io.kotest.matchers.shouldBe6import io.ktor.client.call.*7import io.ktor.client.request.*8import io.ktor.client.statement.*9import io.ktor.http.*10import kotlinx.serialization.json.JsonObject11import java.time.Instant12import java.time.format.DateTimeFormatter13class HistoryBTest : BFunSpec({ httpClient ->14  afterEach {15    httpClient.delete<Unit>("/snapshots")16  }17  test("no history") {18    httpClient.get<HttpResponse>("/snapshots").apply {19      status shouldBe HttpStatusCode.OK20      receive<JsonObject>() shouldBe mapOf("history" to emptyList<Unit>())21    }22  }23  test("history after updates") {24    httpClient.put<Unit>("/snapshots/latest") {25      contentType(ContentType.Application.Json)26      body = LocationsContainer(mapOf("the" to "first update"))27    }28    httpClient.put<Unit>("/snapshots/latest") {29      contentType(ContentType.Application.Json)30      body = LocationsContainer(mapOf("the" to "second update"))31    }32    httpClient.get<HttpResponse>("/snapshots").apply {33      status shouldBe HttpStatusCode.OK34      receive<HistoryContainer>().shouldBeHistory(35        SnapshotContainerMatcher(LocationsContainer(mapOf("the" to "first update"))),36        SnapshotContainerMatcher(LocationsContainer(mapOf("the" to "second update"))),37      )38    }39  }40  test("discard duplicate updates") {41    httpClient.put<Unit>("/snapshots/latest") {42      contentType(ContentType.Application.Json)43      body = LocationsContainer(mapOf("the" to "same update"))44    }45    httpClient.put<Unit>("/snapshots/latest") {46      contentType(ContentType.Application.Json)47      body = LocationsContainer(mapOf("the" to "same update"))48    }49    httpClient.get<HistoryContainer>("/snapshots").shouldBeHistory(50      SnapshotContainerMatcher(LocationsContainer(mapOf("the" to "same update"))),51    )52  }53  test("photo field does not impact distinctness of a snapshot") {54    val withPhoto = LocationsContainer(mapOf("the" to "same update", "photo" to "123456"))55    val withoutPhoto = LocationsContainer(mapOf("the" to "same update"))56    httpClient.put<Unit>("/snapshots/latest") {57      contentType(ContentType.Application.Json)58      body = withPhoto59    }60    httpClient.put<Unit>("/snapshots/latest") {61      contentType(ContentType.Application.Json)62      body = withoutPhoto63    }64    httpClient.get<HistoryContainer>("/snapshots").shouldBeHistory(65      SnapshotContainerMatcher(withPhoto),66    )67    httpClient.delete<Unit>("/snapshots")68    httpClient.put<Unit>("/snapshots/latest") {69      contentType(ContentType.Application.Json)70      body = withoutPhoto71    }72    httpClient.put<Unit>("/snapshots/latest") {73      contentType(ContentType.Application.Json)74      body = withPhoto75    }76    httpClient.get<HistoryContainer>("/snapshots").shouldBeHistory(77      SnapshotContainerMatcher(withoutPhoto),78    )79  }80})81fun HistoryContainer.shouldBeHistory(vararg matcher: SnapshotContainerMatcher) {82  history.size shouldBe matcher.size83  history.zip(matcher).forEachIndexed { index, (actual, matcher) ->84    try {85      actual.content shouldBe matcher.content86      Instant.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(actual.timestamp))87        .shouldBeBetween(88          matcher.timestamp.minusMillis(matcher.timestampToleranceMs),89          matcher.timestamp.plusMillis(matcher.timestampToleranceMs),90        )91    } catch (exception: AssertionError) {92      throw AssertionError("Snapshot containers did not match at index $index", exception)93    }94  }95}96data class SnapshotContainerMatcher(97  val content: LocationsContainer,98  val timestamp: Instant = Instant.now(),99  val timestampToleranceMs: Long = 1000,100)...instantMatcherTest.kt
Source:instantMatcherTest.kt  
1package com.sksamuel.kotest.matchers.date2import io.kotest.core.spec.style.FreeSpec3import io.kotest.matchers.date.shouldBeAfter4import io.kotest.matchers.date.shouldBeBefore5import io.kotest.matchers.date.shouldBeBetween6import io.kotest.matchers.date.shouldNotBeAfter7import io.kotest.matchers.date.shouldNotBeBefore8import io.kotest.matchers.date.shouldNotBeBetween9import io.kotest.matchers.shouldBe10import io.kotest.matchers.shouldNotBe11import java.time.Instant12class InstantMatcherTest : FreeSpec() {13   init {14      "same instance of instant should be same" {15         val currentInstant = Instant.now()16         currentInstant shouldBe currentInstant17      }18      "different instance of instant having same time should be same" {19         Instant.ofEpochMilli(10000) shouldBe Instant.ofEpochMilli(10000)20      }21      "instance of different time should be different" {22         val currentInstant = Instant.now()23         val pastInstant = currentInstant.minusMillis(40000)24         currentInstant shouldNotBe pastInstant25      }26      "past instant should be before current instant" {27         val currentInstant = Instant.now()28         val pastInstant = currentInstant.minusMillis(1000)29         pastInstant shouldBeBefore currentInstant30      }31      "current instant should not be before past instant" {32         val currentInstant = Instant.now()33         val pastInstant = currentInstant.minusMillis(1000)34         currentInstant shouldNotBeBefore pastInstant35      }36      "future instant should be after current instant" {37         val currentInstant = Instant.now()38         val futureInstant = currentInstant.plusMillis(1000)39         futureInstant shouldBeAfter currentInstant40      }41      "current instant should not be after past instant" {42         val currentInstant = Instant.now()43         val futureInstant = currentInstant.plusMillis(1000)44         currentInstant shouldNotBeAfter futureInstant45      }46      "instant of same time should not be before another instant of same time" {47         Instant.ofEpochMilli(30000) shouldNotBeBefore Instant.ofEpochMilli(30000)48      }49      "instant of same time should not be after another instant of same time" {50         Instant.ofEpochMilli(30000) shouldNotBeAfter Instant.ofEpochMilli(30000)51      }52      "current instant should be between past instant and future instant" {53         val currentInstant = Instant.now()54         val pastInstant = currentInstant.minusMillis(30000)55         val futureInstant = currentInstant.plusMillis(30000)56         currentInstant.shouldBeBetween(pastInstant, futureInstant)57      }58      "past instant should not be between current instant and future instant" {59         val currentInstant = Instant.now()60         val pastInstant = currentInstant.minusMillis(30000)61         val futureInstant = currentInstant.plusMillis(30000)62         pastInstant.shouldNotBeBetween(currentInstant, futureInstant)63      }64      "future instant should not be between past instant and current instant" {65         val currentInstant = Instant.now()66         val pastInstant = currentInstant.minusMillis(30000)67         val futureInstant = currentInstant.plusMillis(30000)68         futureInstant.shouldNotBeBetween(pastInstant, currentInstant)69      }70   }71}...instant.kt
Source:instant.kt  
1package io.kotest.matchers.date2import io.kotest.matchers.Matcher3import io.kotest.matchers.MatcherResult4import io.kotest.matchers.shouldBe5import io.kotest.matchers.shouldNot6import io.kotest.matchers.shouldNotBe7import java.time.Instant8fun before(anotherInstant: Instant) = object : Matcher<Instant> {9   override fun test(value: Instant): MatcherResult {10      return MatcherResult(11         value.isBefore(anotherInstant),12         { "Expected $value to be before $anotherInstant, but it's not." },13         { "$anotherInstant is not expected to be before $value." }14      )15   }16}17fun after(anotherInstant: Instant) = object : Matcher<Instant> {18   override fun test(value: Instant): MatcherResult {19      return MatcherResult(20         value.isAfter(anotherInstant),21         { "Expected $value to be after $anotherInstant, but it's not." },22         { "$anotherInstant is not expected to be after $value." }23      )24   }25}26fun between(fromInstant: Instant, toInstant: Instant) = object : Matcher<Instant> {27   override fun test(value: Instant): MatcherResult {28      return MatcherResult(29         value.isAfter(fromInstant) && value.isBefore(toInstant),30         { "$value should be after $fromInstant and before $toInstant" },31         { "$value should not be be after $fromInstant and before $toInstant" }32      )33   }34}35/**36 * Assert that [Instant] is before [anotherInstant].37 * @see [shouldNotBeBefore]38 * */39infix fun Instant.shouldBeBefore(anotherInstant: Instant) = this shouldBe before(anotherInstant)40/**41 * Assert that [Instant] is not before [anotherInstant].42 * @see [shouldBeBefore]43 * */44infix fun Instant.shouldNotBeBefore(anotherInstant: Instant) = this shouldNotBe before(anotherInstant)45/**46 * Assert that [Instant] is after [anotherInstant].47 * @see [shouldNotBeAfter]48 * */49infix fun Instant.shouldBeAfter(anotherInstant: Instant) = this shouldBe after(anotherInstant)50/**51 * Assert that [Instant] is not after [anotherInstant].52 * @see [shouldNotBeAfter]53 * */54infix fun Instant.shouldNotBeAfter(anotherInstant: Instant) = this shouldNot after(anotherInstant)55/**56 * Assert that [Instant] is between [fromInstant] and [toInstant].57 * @see [shouldNotBeBetween]58 * */59fun Instant.shouldBeBetween(fromInstant: Instant, toInstant: Instant) = this shouldBe between(fromInstant, toInstant)60/**61 * Assert that [Instant] is between [fromInstant] and [toInstant].62 * @see [shouldBeBetween]63 * */64fun Instant.shouldNotBeBetween(fromInstant: Instant, toInstant: Instant) = this shouldNotBe between(fromInstant, toInstant)...LatestBTest.kt
Source:LatestBTest.kt  
1package com.painkillergis.fall_color_history.snapshot2import com.painkillergis.fall_color_history.util.BFunSpec3import com.painkillergis.fall_color_history.util.toJsonObject4import io.kotest.matchers.date.shouldBeBetween5import io.kotest.matchers.shouldBe6import io.ktor.client.call.*7import io.ktor.client.request.*8import io.ktor.client.statement.*9import io.ktor.http.*10import kotlinx.serialization.json.JsonObject11import kotlinx.serialization.json.JsonPrimitive12import java.time.Instant13import java.time.format.DateTimeFormatter14class LatestBTest : BFunSpec({ httpClient ->15  afterEach {16    httpClient.delete<Unit>("/snapshots")17  }18  test("no latest") {19    httpClient.get<HttpResponse>("/snapshots/latest").apply {20      status shouldBe HttpStatusCode.OK21      receive<JsonObject>() shouldBe mapOf(22        "timestamp" to "",23        "content" to emptyMap<String, Unit>(),24      ).toJsonObject()25    }26  }27  test("replace latest") {28    val latest = mapOf("locations" to emptyList<Unit>())29    httpClient.put<HttpResponse>("/snapshots/latest") {30      contentType(ContentType.Application.Json)31      body = latest32    }.apply {33      status shouldBe HttpStatusCode.NoContent34    }35    httpClient.get<HttpResponse>("/snapshots/latest").apply {36      status shouldBe HttpStatusCode.OK37      receive<JsonObject>().apply {38        (get("timestamp") as JsonPrimitive)39          .content40          .let { Instant.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(it)) }41          .shouldBeBetween(42            Instant.now().minusSeconds(5),43            Instant.now().plusSeconds(5),44          )45        get("content") shouldBe latest46      }47    }48  }49})...CreateTrialUserImplTest.kt
Source:CreateTrialUserImplTest.kt  
1package com.falcon.falcon.core.usecase.trial2import com.falcon.falcon.core.entity.User3import com.falcon.falcon.core.enumeration.UserType4import com.falcon.falcon.core.usecase.user.CreateUserUseCase5import io.kotest.matchers.date.shouldBeBetween6import io.kotest.matchers.shouldBe7import io.kotest.matchers.string.shouldBeUUID8import io.kotest.matchers.types.shouldBeTypeOf9import io.mockk.clearAllMocks10import io.mockk.every11import io.mockk.mockk12import org.junit.jupiter.api.BeforeEach13import org.junit.jupiter.api.Test14import org.junit.jupiter.api.TestInstance15import java.time.Instant16import java.time.temporal.ChronoUnit17@TestInstance(TestInstance.Lifecycle.PER_CLASS)18internal class CreateTrialUserImplTest {19    private val createUserUseCase: CreateUserUseCase = mockk()20    private val trialDuration = 1L21    private val underTest: CreateTrialUserImpl = CreateTrialUserImpl(createUserUseCase, trialDuration)22    @BeforeEach23    fun init() {24        clearAllMocks()25    }26    @Test27    fun `Should generate random user`() {28        // Given29        every { createUserUseCase.execute(any()) } returnsArgument 030        // When31        val result = underTest.execute()32        // Then33        result.shouldBeTypeOf<User>()34        result.username.shouldBeUUID()35        result.password.shouldBeUUID()36        result.type.shouldBe(UserType.TRIAL)37        result.expirationDate?.shouldBeBetween(38            Instant.now().plus(50, ChronoUnit.MINUTES),39            Instant.now().plus(70, ChronoUnit.MINUTES),40        )41    }42}...Instant.shouldBeBetween
Using AI Code Generation
1Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))2Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))3Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))4Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))5Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))6Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))7Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))8Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))9Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))10Instant.now().shouldBeBetween(Instant.now().minus(1, ChronoUnit.SECONDS), Instant.now().plus(1, ChronoUnit.SECONDS))Instant.shouldBeBetween
Using AI Code Generation
1val instant = Instant.now()2instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))3val instant = Instant.now()4instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))5val instant = Instant.now()6instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))7val instant = Instant.now()8instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))9val instant = Instant.now()10instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))11val instant = Instant.now()12instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))13val instant = Instant.now()14instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))15val instant = Instant.now()16instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))17val instant = Instant.now()18instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))19val instant = Instant.now()20instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))21val instant = Instant.now()22instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))Instant.shouldBeBetween
Using AI Code Generation
1import io.kotest.matchers.date.instant.shouldBeBetween2import java.time.Instant3val instant = Instant.now()4instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))5import io.kotest.matchers.date.instant.shouldBeBetween6import java.time.Instant7val instant = Instant.now()8instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))9import io.kotest.matchers.date.instant.shouldBeBetween10import java.time.Instant11val instant = Instant.now()12instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))13import io.kotest.matchers.date.instant.shouldBeBetween14import java.time.Instant15val instant = Instant.now()16instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))17import io.kotest.matchers.date.instant.shouldBeBetween18import java.time.Instant19val instant = Instant.now()20instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))21import io.kotest.matchers.date.instant.shouldBeBetween22import java.time.Instant23val instant = Instant.now()24instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))25import io.kotest.matchers.date.instant.shouldBeBetween26import java.time.Instant27val instant = Instant.now()28instant.shouldBeBetween(Instant.now().minusSeconds(10), Instant.now().plusSeconds(10))29import io.kotest.matchers.date.instant.shouldBeBetween30import java.time.Instant31val instant = Instant.now()32instant.shouldBeBetween(Instant.now().minusSeconds(Instant.shouldBeBetween
Using AI Code Generation
1val today = Instant.now() val tomorrow = Instant.now().plus(1, ChronoUnit.DAYS) val yesterday = Instant.now().minus(1, ChronoUnit.DAYS) today.shouldBeBetween(yesterday, tomorrow) today.shouldBeBetween(yesterday, today) today.shouldBeBetween(today, tomorrow) today.shouldBeBetween(today, today)2val today = Instant.now() val tomorrow = Instant.now().plus(1, ChronoUnit.DAYS) val yesterday = Instant.now().minus(1, ChronoUnit.DAYS) today.shouldNotBeBetween(tomorrow, tomorrow.plus(1, ChronoUnit.DAYS)) today.shouldNotBeBetween(yesterday.minus(1, ChronoUnit.DAYS), yesterday)3val today = LocalDate.now() val tomorrow = LocalDate.now().plus(1, ChronoUnit.DAYS) val yesterday = LocalDate.now().minus(1, ChronoUnit.DAYS) today.shouldBeBetween(yesterday, tomorrow) today.shouldBeBetween(yesterday, today) today.shouldBeBetween(today, tomorrow) today.shouldBeBetween(today, today)4val today = LocalDate.now() val tomorrow = LocalDate.now().plus(1, ChronoUnit.DAYS) val yesterday = LocalDate.now().minus(1, ChronoUnit.DAYS) today.shouldNotBeBetween(tomorrow, tomorrow.plus(1, ChronoUnit.DAYS)) today.shouldNotBeBetween(yesterday.minus(1, ChronoUnit.DAYS), yesterday)5val today = LocalDateTime.now() val tomorrow = LocalDateTime.now().plus(1, ChronoUnit.DAYS) val yesterday = LocalDateTime.now().minus(1, ChronoUnit.DAYS) today.shouldBeBetween(yesterday, tomorrow) today.shouldBeBetween(yesterday, today) today.shouldBeBetween(today, tomorrow) today.shouldBeBetween(today, today)6val today = LocalDateTime.now() val tomorrow = LocalDateTime.now().plus(1, ChronoUnitInstant.shouldBeBetween
Using AI Code Generation
1    val instant = Instant.now()2    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5))3    val instant = Instant.now()4    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5)5    val instant = Instant.now()6    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS)7    val instant = Instant.now()8    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS, 5)9    val instant = Instant.now()10    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS, 5, 5)11    val instant = Instant.now()12    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS, 5, 5, 5)13    val instant = Instant.now()14    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS, 5, 5, 5, 5)15    val instant = Instant.now()16    instant.shouldBeBetween(Instant.now().minusSeconds(5), Instant.now().plusSeconds(5), 5, TimeUnit.SECONDS, 5, 5, 5, 5, 5)17    val instant = Instant.now()18    instant.shouldBeBetween(InstantInstant.shouldBeBetween
Using AI Code Generation
1"Instant should be between" {2val instant = Instant.now()3instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))4}5"Instant should be between" {6val instant = Instant.now()7instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))8}9"Instant should be between" {10val instant = Instant.now()11instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))12}13"Instant should be between" {14val instant = Instant.now()15instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))16}17"Instant should be between" {18val instant = Instant.now()19instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))20}21"Instant should be between" {22val instant = Instant.now()23instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))24}25"Instant should be between" {26val instant = Instant.now()27instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))28}29"Instant should be between" {30val instant = Instant.now()31instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))32}33"Instant should be between" {34val instant = Instant.now()35instant.shouldBeBetween(Instant.now().minusSeconds(1), Instant.now().plusSeconds(1))36}Instant.shouldBeBetween
Using AI Code Generation
1import io.kotest.matchers.date.instant.shouldBeBetween2import java.time.Instant3import java.time.temporal.ChronoUnit4import kotlin.test.Test5class InstantTest {6fun `instant should be between`() {7val instant = Instant.now()8instant.shouldBeBetween(instant.minus(1, ChronoUnit.DAYS), instant.plus(1, ChronoUnit.DAYS))9}10}11import io.kotest.matchers.date.instant.shouldBeAfter12import java.time.Instant13import kotlin.test.Test14class InstantTest {15fun `instant should be after`() {16val instant = Instant.now()17instant.shouldBeAfter(instant.minus(1, ChronoUnit.DAYS))18}19}20import io.kotest.matchers.date.instant.shouldBeBefore21import java.time.Instant22import kotlin.test.Test23class InstantTest {24fun `instant should be before`() {25val instant = Instant.now()26instant.shouldBeBefore(instant.plus(1, ChronoUnit.DAYS))27}28}29import io.kotest.matchers.date.instant.shouldBeToday30import java.time.Instant31import kotlin.test.Test32class InstantTest {33fun `instant should be today`() {34val instant = Instant.now()35instant.shouldBeToday()36}37}38import io.kotest.matchers.date.instant.shouldBeYesterday39import java.time.Instant40import kotlin.test.Test41class InstantTest {42fun `instant should be yesterday`() {43val instant = Instant.now()44instant.shouldBeYesterday()45}46}47import io.kotest.matchers.date.instant.shouldBeTomorrow48import java.time.Instant49import kotlin.test.Test50class InstantTest {51fun `instant should be tomorrow`() {52val instant = Instant.now()53instant.shouldBeTomorrow()54}55}56import io.kotest.matchers.date.instant.shouldBeWithin57import java.timeInstant.shouldBeBetween
Using AI Code Generation
1class InstantShouldBeBetweenTest : ShouldSpec({2"Instant should be between" {3}4})5class InstantShouldBeBetweenTest : ShouldSpec({6"Instant should be between" {7}8})9class InstantShouldBeBetweenTest : ShouldSpec({10"Instant should be between" {11}12})13class InstantShouldBeBetweenTest : ShouldSpec({14"Instant should be between" {15}16})17class InstantShouldBeBetweenTest : ShouldSpec({18"Instant should be between" {19}20})21class InstantShouldBeBetweenTest : ShouldSpec({22"Instant should be between" {23}24})25class InstantShouldBeBetweenTest : ShouldSpec({26"Instant should be between" {27}28})29class InstantShouldBeBetweenTest : ShouldSpec({30"Instant should be between" {Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
