Best Kotest code snippet using io.kotest.matchers.date.matchers.between
DateMatchersTest.kt
Source:DateMatchersTest.kt  
...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    }...matchers.kt
Source:matchers.kt  
...122                shouldNotBeEmpty()123            }124            // executable, hidden, readable, smaller, writeable, containFile, extension, path, ...125            LocalDate.now().shouldBeToday()126            // before/after, within, same, between, have year/month/day/hour/...127            LocalTime.now().shouldHaveSameHoursAs(LocalTime.now())128            // before/after/between, sameMinute/Seconds/Nanos129        }130        it("numbers") {131            1 shouldBeLessThan 2132            1 shouldBeLessThanOrEqual 1 // Int-based; returns this133            1 shouldBeLessThanOrEqualTo 1 // Comparble-based; void134            1 shouldBeEqualComparingTo 1 // Comparable-based135            1.shouldBeBetween(0, 2)136            1 shouldBeInRange 0..2137            0.shouldBeZero()138            1.shouldBePositive()139            1.shouldBeOdd()140            (1.2).shouldBe(1.20001.plusOrMinus(Percentage(20.0)))141            (1.2).shouldNotBeNaN()142        }143        it("strings") {144            // generic: "abc" shouldBe "abc"145            "aBc" shouldBeEqualIgnoringCase "abc"146            "".shouldBeEmpty()147            " ".shouldBeBlank() // empty or whitespace148            "abc" shouldContain ("b")149            "aBc" shouldContainIgnoringCase "bc"150            "x-a-x" shouldContain """\-[a-z]\-""".toRegex()151            "-a-" shouldMatch """\-[a-z]\-""".toRegex()152            "abc" shouldStartWith ("a")153            "abc" shouldEndWith ("c")154            "ab aa" shouldContainOnlyOnce "aa"155            "abc".shouldBeLowerCase()156            "ABC".shouldBeUpperCase()157            "abc" shouldHaveLength 3158            "a\nb" shouldHaveLineCount 2159            "ab" shouldHaveMinLength 1 shouldHaveMaxLength 3160            "abc" shouldHaveSameLengthAs "foo"161            "1".shouldBeInteger()162            "12".shouldContainOnlyDigits()163            "abc1".shouldContainADigit() // at least one164        }165        it("types") {166            @Connotation167            open class SuperType()168            class SubType : SuperType()169            val sameRef = SuperType()170            sameRef.shouldBeSameInstanceAs(sameRef)171            val superType: SuperType = SubType()172            superType.shouldBeTypeOf<SubType>() // exact runtime match (SuperType won't work!)173            superType.shouldBeInstanceOf<SuperType>() // T or below174//            SubType().shouldHaveAnnotation(Connotation::class)175            val nullable: String? = null176            nullable.shouldBeNull()177        }178        it("collections") {179            emptyList<Int>().iterator().shouldBeEmpty()180            listOf(1).iterator().shouldHaveNext()181            listOf(1, 2) shouldContain 1 // at least182            listOf(1, 2) shouldContainExactly listOf(1, 2) // in-order; not more183            listOf(1, 2) shouldContainExactlyInAnyOrder listOf(2, 1) // out-order; not more184            listOf(0, 3, 0, 4, 0).shouldContainInOrder(3, 4) // possible items in between185            listOf(1) shouldNotContainAnyOf listOf(2, 3) // black list186            listOf(1, 2, 3) shouldContainAll listOf(3, 2) // out-order; more187            listOf(1, 2, 3).shouldBeUnique() // no duplicates188            listOf(1, 2, 2).shouldContainDuplicates() // at least one duplicate189            listOf(1, 2).shouldNotHaveElementAt(1, 3)190            listOf(1, 2) shouldStartWith 1191            listOf(1, 2) shouldEndWith 2192            listOf(1, 2) shouldContainAnyOf listOf(2, 3)193            val x = SomeType(1)194            x shouldBeOneOf listOf(x) // by reference/instance195            x shouldBeIn listOf(SomeType(1)) // by equality/structural196            listOf(1, 2, null).shouldContainNull()197            listOf(1) shouldHaveSize 1198            listOf(1).shouldBeSingleton() // size == 1...timestampTest.kt
Source:timestampTest.kt  
...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}...UpdateQueryBuilderTest.kt
Source:UpdateQueryBuilderTest.kt  
...52        builder = builder!!53            .set { TestEntity::dateTime.eq(values[0]) }54            .where {55                TestEntity::id.eq(values[1]) or {56                    fieldOf(TestEntity::number).between(values[2]).and(values[3])57                } and {58                    fieldOf(TestEntity::enum).neq(values[4]) and fieldOf(TestEntity::name).inList(values[5] as List<*>)59                }60            }61        val queryString = builder!!.getQueryString()62        queryString shouldBe "UPDATE TestEntity SET dateTime = :DateTime WHERE id = :Id OR (number BETWEEN :Number1 AND :Number2) AND (enum != :Enum AND name IN :Name)"63        if (mocking) {64            for (i in values.indices) {65                builder!!.build()66                values[i] shouldBeIn parameters67            }68        } else {69            val tx = session.transaction70            tx.begin()...StampsAndCoinsGeneratorKtTest.kt
Source:StampsAndCoinsGeneratorKtTest.kt  
...20                main(arrayOf())21            }22        }23        "getRandomDimMM" should {24            "Get dim between considered range" {25                getRandomDimMM(1, 10) shouldBeInRange (LongRange(1, 10))26            }27        }28        "getRandomDiameterMM" should {29            getRandomDiameterMM(1, 10) shouldBeInRange (LongRange(1, 10))30        }31        "getRandomCurrency" should {32            getRandomCurrency() shouldBeIn Currency.values()33        }34        "getRandomValueUpTo" should {35            getRandomValueUpTo(10) shouldBeInRange LongRange(1, 10)36        }37        "getRandomYearFrom" should {38            getRandomYearFrom(1900) shouldBeGreaterThanOrEqual 1900...instantMatcherTest.kt
Source:instantMatcherTest.kt  
...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}...MoneyTransferTest.kt
Source:MoneyTransferTest.kt  
...25        accountA = accountA.process(MakeDeposit(accountA.aggregateId, Money.of(100.0), LocalDate.now())).orNull()!!26        accountB = AccountAggregate(UUID.randomUUID(), eventStore)27        transferId = UUID.randomUUID()28    }29    "should transfer money between two account" {30        val date = LocalDate.now()31        MoneyTransfer.transferMoney(accountA, accountB, Money.of(100.0), date, transferId)32        eventStore.retrieveEvents(accountA) shouldContainAll  listOf(TransferWithdrawMade(accountA.aggregateId, transferId, Money.of(100.0), date))33        eventStore.retrieveEvents(accountB) shouldContainAll listOf(TransferDepositMade(accountB.aggregateId, transferId, Money.of(100.0), date))34        loadAccount(accountB.aggregateId, eventStore)!!.balance shouldBe Money.of(100.0)35        loadAccount(accountA.aggregateId, eventStore)!!.balance shouldBe Money.of(0.0)36    }37    "should not transfer money if withdraw account has not enough money" {38        val result = MoneyTransfer.transferMoney(accountB, accountA, Money.of(100.0), LocalDate.now(), transferId)39        result shouldBe Either.Left(NotEnoughMoney(Money.of(100.0)))40    }41    "should cancel transfer and put back money if deposit part fail" {42        val exception = Exception("simulated error")43        accountB = AccountAggregate(UUID.randomUUID(), object : EventStore {...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}...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!!
