package Ġdev . g um il . k ask ade . coroutines Ċ Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ internal Ġclass ĠVer ifier < T > Ġ{ ĊĊĠĠĠ Ġval Ġfunction : Ġ( T ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġinvoked Values . add ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġinvoked Values Ġ= Ġmutable ListOf < T >() ĊĊĠĠĠ Ġfun Ġverify Inv oked WithValue ( value : ĠT , Ġtimes : ĠInt Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( times , Ġinvoked Values . filter Ġ{ Ġit Ġ== Ġvalue Ġ}. size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġverify No Inv ocations () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġinvoked Values . isEmpty () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġverify Order ( verify Builder : ĠOrdered Builder < T >. () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġordered Builder Ġ= ĠOrdered Builder < T >() ĊĠĠĠĠĠĠĠ Ġverify Builder ( ordered Builder ) ĊĠĠĠĠĠĠĠ Ġordered Builder . values . forEach Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( value , Ġinvoked Values [ index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠOrdered Builder < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ values Ġ= Ġmutable ListOf < T >() ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues : ĠList < T > Ġ= Ġ_ values ĊĊĠĠĠĠĠĠĠ Ġfun Ġverify ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ values . add ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ