/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 2 0 ĠLe on ardo ĠCol man ĠL op es Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġtop . col man . embedded firestore . internal . fake . references Ċ Ċ import Ġcom . google . cloud . firestore . Query Ċ import Ġio . kot est . core . spec . Isolation Mode Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . matchers . collections . should Have Size Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . mock k . mock k Ċ Ċ class ĠFake Query Test Ġ: ĠFun Spec ({ ĊĊĠĠĠ Ġval Ġqueried Ġ= ĠFake Query ( List ( 5 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFake Document Reference ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value " Ġto Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" inverse - value " Ġto Ġ( 4 Ġ- Ġit ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" array " Ġto ĠarrayOf ( it , Ġit Ġ+ Ġ 1 , Ġit Ġ+ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}) ĊĠĠĠĠĊĠĠĠ Ġtest (" EqualTo ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where EqualTo (" value ", Ġ 3 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents . single ()[" value "] ĠshouldBe Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" LessThan ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where LessThan (" value ", Ġ 3 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 0 ĠĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 1 ĠĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 2 ][" value "] ĠshouldBe Ġ 2 ĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest (" LessThan OrEqualTo ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where LessThan OrEqualTo (" value ", Ġ 3 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 4 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 2 ][" value "] ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 3 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" GreaterThan ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where GreaterThan (" value ", Ġ 3 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 4 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest (" GreaterThan OrEqualTo ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where GreaterThan OrEqualTo (" value ", Ġ 3 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 4 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" Where Array Contains ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where Array Contains (" array ", Ġ 4 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 2 ][" value "] ĠshouldBe Ġ 4 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" OrderBy ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where LessThan OrEqualTo (" value ", Ġ 3 ). orderBy (" inverse - value "). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 4 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 2 ][" value "] ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 3 ][" value "] ĠshouldBe Ġ 0 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" OrderBy Desc ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. where LessThan OrEqualTo (" value ", Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orderBy (" inverse - value ", ĠQuery . Direction . DESC ENDING ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 4 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 2 ][" value "] ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 3 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġtest (" Limit ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where LessThan OrEqualTo (" value ", Ġ 3 ). limit ( 2 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest (" Offset ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturned Values Ġ= Ġqueried . where LessThan OrEqualTo (" value ", Ġ 3 ). offset ( 2 ). get (). get () ĊĠĠĠĠĠĠĠ Ġreturned Values . documents Ġshould Have Size Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 0 ][" value "] ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠ Ġreturned Values . documents [ 1 ][" value "] ĠshouldBe Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġisolation Ġ= ĠI sol ation Mode . Instance Per Test Ċ }) Ċ