package Ġdev . v eng ates hm . clean architecture mv vm notes app . feature _ note . domain . use _ case Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġdev . v eng ates hm . clean architecture mv vm notes app . feature _ note . data . Fake Note Repository Ċ import Ġdev . v eng ates hm . clean architecture mv vm notes app . feature _ note . domain . model . Note Ċ import Ġdev . v eng ates hm . clean architecture mv vm notes app . feature _ note . domain . util . Note Sort Ċ import Ġdev . v eng ates hm . clean architecture mv vm notes app . feature _ note . domain . util . Sort Type Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠGet Notes Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġget Notes : ĠGet Notes ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfake Note Repository : ĠFake Note Repository Ġ// ĠHelp ful Ġin Ġtests ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġfake Note Repository Ġ= ĠFake Note Repository () ĊĠĠĠĠĠĠĠ Ġget Notes Ġ= ĠGet Notes ( fake Note Repository ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnotes To Insert Ġ= Ġmutable ListOf < Note >() ĊĠĠĠĠĠĠĠ Ġ(' a ' .. ' z '). forEach Indexed Ġ{ Ġindex , Ġc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes To Insert . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġc . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġc . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġindex . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotes To Insert . shuffle () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes To Insert . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Note Repository . add Note ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġtitle Ġascending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Title ( Sort Type . Asc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. title ). is LessThan ( notes [ i Ġ+ Ġ 1 ]. title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġtitle Ġdescending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Title ( Sort Type . Desc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. title ). is GreaterThan ( notes [ i Ġ+ Ġ 1 ]. title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġdate Ġascending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Date ( Sort Type . Asc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. timestamp ). is LessThan ( notes [ i Ġ+ Ġ 1 ]. timestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġdate Ġdescending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Date ( Sort Type . Desc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. timestamp ). is GreaterThan ( notes [ i Ġ+ Ġ 1 ]. timestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġcolor Ġascending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Color ( Sort Type . Asc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. color ). is LessThan ( notes [ i Ġ+ Ġ 1 ]. color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Sort Ġnotes Ġby Ġcolor Ġdescending `() Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġget Notes ( Note Sort . Color ( Sort Type . Desc )). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. notes . size Ġ- Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( notes [ i ]. color ). is GreaterThan ( notes [ i Ġ+ Ġ 1 ]. color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }