/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . example . android . track r . ui . tasks Ċ Ċ import Ġcom . example . android . track r . data . Avatar Ċ import Ġcom . example . android . track r . data . Task Status Ċ import Ġcom . example . android . track r . data . Task Summary Ċ import Ġcom . example . android . track r . data . User Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Test Ċ import Ġjava . time . Instant Ċ Ċ class ĠList Items Creator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexecute _ when No Task Sum maries () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠList Items Creator ( emptyList (), Ġmutable Map Of ( Task Status . IN _ PROGRESS Ġto Ġtrue )) ĊĠĠĠĠĠĠĠ Ġval Ġlist Items Ġ= Ġsubject . execute () ĊĠĠĠĠĠĠĠ ĠassertThat ( list Items ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( list Items [ 0 ]). isInstanceOf ( ListItem . Type Header :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġ( list Items [ 0 ] Ġas ĠListItem . Type Header ) ĊĠĠĠĠĠĠĠ ĠassertThat ( header . header Data . count ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( header . header Data . task Status ). isEqualTo ( Task Status . IN _ PROGRESS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexecute _ when Expanded State _ returns Header And Task Summary () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠList Items Creator ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( item 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of ( Task Status . IN _ PROGRESS Ġto Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Items Ġ= Ġsubject . execute () ĊĠĠĠĠĠĠĠ ĠassertThat ( list Items ). has Size ( 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( list Items [ 0 ]). isInstanceOf ( ListItem . Type Header :: class . java ) ĊĠĠĠĠĠĠĠ ĠassertThat ( list Items [ 1 ]). isInstanceOf ( ListItem . Type Task :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexecute _ when Collapsed State _ s aves Count In Header () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠList Items Creator ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( item 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of ( Task Status . IN _ PROGRESS Ġto Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Items Ġ= Ġsubject . execute () ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġ( list Items [ 0 ] Ġas ĠListItem . Type Header ) ĊĠĠĠĠĠĠĠ ĠassertThat ( header . header Data . count ). isEqualTo ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexecute _ returns Tasks In Order () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠList Items Creator ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( item 1 , Ġitem 3 , Ġitem 2 ), Ġ// ĠTask Dao Ġgives Ġus Ġthese Ġsorted Ġitems . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of ( Task Status . IN _ PROGRESS Ġto Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Items Ġ= Ġsubject . execute () ĊĠĠĠĠĠĠĠ ĠassertThat (( list Items [ 1 ] Ġas ĠListItem . Type Task ). task Summary ). isEqualTo ( item 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat (( list Items [ 2 ] Ġas ĠListItem . Type Task ). task Summary ). isEqualTo ( item 3 ) ĊĠĠĠĠĠĠĠ ĠassertThat (( list Items [ 3 ] Ġas ĠListItem . Type Task ). task Summary ). isEqualTo ( item 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Ġ= ĠUser ( 1 , Ġ" user ", ĠAvatar . DEFAULT _ USER ) ĊĠĠĠĠĠĠĠ Ġval Ġitem 1 Ġ= ĠTask Summary ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" task Ġlist Ġitem Ġ 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdue At Ġ= ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġuser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠTask Status . IN _ PROGRESS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder In Category Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem 2 Ġ= ĠTask Summary ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" task Ġlist Ġitem Ġ 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdue At Ġ= ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġuser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠTask Status . IN _ PROGRESS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder In Category Ġ= Ġ 3 , Ġ// ĠNote : Ġout Ġof Ġorder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem 3 Ġ= ĠTask Summary ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" task Ġlist Ġitem Ġ 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdue At Ġ= ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġuser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠTask Status . IN _ PROGRESS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder In Category Ġ= Ġ 2 , Ġ// ĠNote : Ġout Ġof Ġorder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstar red Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ