package Ġcom . k yle cor ry . trail _ sense . shared . grouping . count Ċ Ċ import Ġcom . k yle cor ry . trail _ sense . shared . grouping . Group able Ċ import Ġcom . k yle cor ry . trail _ sense . shared . grouping . persistence . IG roup Loader Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . wh enever Ċ import Ġjava . util . stream . Stream Ċ Ċ internal Ġclass ĠGroup Counter Test Ġ{ ĊĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Method Source (" provide Count ") ĊĠĠĠ Ġfun Ġcount ( children : ĠList < Group able >, Ġexpected : ĠInt ) Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠArrange ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= Ġmock < IG roup Loader < Group able >>() ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= ĠGroup Counter ( loader ) ĊĠĠĠĠĠĠĠ Ġwhenever ( loader . getChildren ( 1 , Ġnull )). thenReturn ( children ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġcounter . count ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġactual ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġitem (): ĠGroup able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmock < Group able >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( item . is Group ). thenReturn ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġitem ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġgroup (): ĠGroup able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= Ġmock < Group able >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( group . is Group ). thenReturn ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġgroup ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġprovide Count (): ĠStream < Arguments > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStream . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf < Group able >(), Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( item ()), Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( item (), Ġitem ()), Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( item (), Ġitem (), Ġgroup ()), Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( group ()), Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }