/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġ- Ġpresent ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġ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 . in structure . teacher . unit . modules Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . in structure . canvas api 2 . models . Course Ċ import Ġcom . in structure . canvas api 2 . models . Module Content Details Ċ import Ġcom . in structure . canvas api 2 . models . Module Item Ċ import Ġcom . in structure . canvas api 2 . models . Module Object Ċ import Ġcom . in structure . canvas api 2 . utils . Data Result Ċ import Ġcom . in structure . canvas api 2 . utils . Date Helper Ċ import Ġcom . in structure . canvas api 2 . utils . to Api String Ċ import Ġcom . in structure . p anda utils . utils . Theme Prefs Ċ import Ġcom . in structure . p anda utils . utils . color Ċ import Ġcom . in structure . teacher . R Ċ import Ġcom . in structure . teacher . features . modules . list . Module ListModel Ċ import Ġcom . in structure . teacher . features . modules . list . Module List Page Data Ċ import Ġcom . in structure . teacher . features . modules . list . Module List Presenter Ċ import Ġcom . in structure . teacher . features . modules . list . ui . Module ListItem Data Ċ import Ġcom . in structure . teacher . features . modules . list . ui . Module ListView State Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠModule List Presenter Test Ġ: ĠAssert () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcourse Ġ= ĠCourse () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmodel Template : ĠModule ListModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmodule Template : ĠModule Object ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmodule Item Template : ĠModule Item ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmodule Data Template : ĠModule ListItem Data . Module Data ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmodule Item Data Template : ĠModule ListItem Data . Module Item Data ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= ĠApplication Provider . getApplicationContext () ĊĠĠĠĠĠĠĠ Ġmodule Template Ġ= ĠModule Object ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Module Ġ 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublished Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmodule Data Template Ġ= ĠModule ListItem Data . Module Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Module Ġ 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Published Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Items Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmodule Item Template Ġ= ĠModule Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 0 0 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Module ĠItem Ġ 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Assignment ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublished Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Details Ġ= ĠModule Content Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdue At Ġ= ĠDate Helper . make Date ( 2 0 5 0 , Ġ 1 , Ġ 1 2 , Ġ 1 5 , Ġ 7 , Ġ 0 ). to Api String () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġmodule Item Data Template Ġ= ĠModule ListItem Data . Module Item Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 0 0 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Module ĠItem Ġ 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ= Ġ" Due ĠFebruary Ġ 1 2 , Ġ 2 0 5 0 Ġat Ġ 3 : 0 7 ĠPM ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ assignment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Published Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindent Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt int Color Ġ= Ġcourse . color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmodel Template Ġ= ĠModule ListModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Ġ= Ġcourse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( module Template ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Data Ġ= ĠModule List Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Page Result Ġ= ĠData Result . Success ( listOf ( module Template )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġempty Ġstate Ġfor Ġno Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠModule ListModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Ġ= Ġcourse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Data Ġ= ĠModule List Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Page Result Ġ= ĠData Result . Success ( emptyList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= ĠModule ListView State ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( Module ListItem Data . Empty ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġactual State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġactual State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġfull Ġerror Ġstate Ġfor Ġerror Ġon Ġfirst Ġpage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠModule ListModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Ġ= Ġcourse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Data Ġ= ĠModule List Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Page Result Ġ= ĠData Result . Fail () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= ĠModule ListView State ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( Module ListItem Data . Full Error ( Theme Prefs . button Color )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġactual State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġactual State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġinline Ġerror Ġstate Ġfor Ġerror Ġafter Ġfirst Ġpage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Data Ġ= ĠModule List Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Page Result Ġ= ĠData Result . Fail () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( module Template ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= ĠModule ListView State ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Data Template , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule ListItem Data . Inline Error ( Theme Prefs . button Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġactual State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġactual State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġinline Ġloading Ġstate Ġif Ġloading Ġafter Ġfirst Ġpage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Data Ġ= ĠModule List Page Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Page Result Ġ= ĠData Result . Success ( emptyList ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Page Url Ġ= Ġ" fake _ url " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( module Template ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= ĠModule ListView State ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Data Template , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule ListItem Data . Loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġactual State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġactual State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġloaded Ġstate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( module Item Template )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= ĠModule ListView State ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Data Template . copy ( module Items Ġ= ĠlistOf ( module Item Data Template )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġactual State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġactual State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠAssignment Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Assignment Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Assignment " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ assignment ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠDis cussion Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Dis cussion Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Dis cussion " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ discussion ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠFile Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" File Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" File " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ attachment ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠPage Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Page Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Page " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ pages ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠQu iz Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Quiz Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Quiz " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ quiz ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠExternal Url Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" External Url Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" External Url " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ link ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠExternal Tool Ġmodule Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Assignment ĠExternal Tool Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" External Tool " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= ĠR . drawable . vd _ lt i ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor ĠSub Header `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" This Ġis Ġa Ġheader ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" Sub Header " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Returns Ġcorrect Ġstate Ġfor Ġloading Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġmodule Item Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" File Ġitem ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" File " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġmodel Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Template . copy ( items Ġ= ĠlistOf ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Module Item Ids Ġ= Ġset Of ( item . id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected State Ġ= Ġmodule Item Data Template . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Res Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= ĠModule List Presenter . present ( model , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġitem State Ġ= Ġ( view State . items [ 0 ] Ġas ĠModule ListItem Data . Module Data ). module Items . first () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected State , Ġitem State ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ