package Ġcom . byte byte 6 . use case Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . byte byte 6 . data . DataManager Ċ import Ġcom . byte byte 6 . data . data Module Ċ import Ġcom . byte byte 6 . data . entity . Tv Ċ import Ġcom . byte byte 6 . lib _ test . assert Error Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . core . context . stop K oin Ċ import Ġorg . k oin . test . K oin Test Ċ import Ġorg . k oin . test . inject Ċ import Ġjava . io . FileNotFoundException Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠParse M 3 u UseCase Test Ġ: ĠK oin Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata Manager : ĠData Manager Ġby Ġinject () ĊĠĠĠ Ġprivate Ġval Ġparse M 3 u UseCase : ĠParse M 3 u UseCase Ġby Ġinject () ĊĠĠĠ Ġprivate Ġval Ġinit App UseCase : ĠInit App UseCase Ġby Ġinject () ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( room Memory Module , Ġdata Module , Ġuse Case Module ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop K oin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ parse _ error () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse M 3 u UseCase . execute ( Parse Param ( Uri . EMPTY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Error ( Exception :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġparse M 3 u UseCase . execute ( Parse Param ( assets FileName Ġ= Ġ" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Error ( FileNotFoundException :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ parse _ success () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġinit App UseCase . execute ( Unit ). test (). assert Value Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . name Ġ== Ġ" Admin " Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtv 1 Ġ= ĠT v ( name Ġ= Ġ" A ", Ġurl Ġ= Ġ" A . url ", Ġcountry Code Ġ= Ġ" ar ") ĊĠĠĠĠĠĠĠ Ġval Ġtv 2 Ġ= ĠT v ( name Ġ= Ġ" B ", Ġurl Ġ= Ġ" B . url ", Ġcountry Code Ġ= Ġ" in ") ĊĠĠĠĠĠĠĠ Ġval Ġtv 3 Ġ= ĠT v ( name Ġ= Ġ" C ", Ġurl Ġ= Ġ" C . url ", Ġcountry Code Ġ= Ġ" cn ") ĊĠĠĠĠĠĠĠ Ġval Ġtv 4 Ġ= ĠT v ( name Ġ= Ġ" D ", Ġurl Ġ= Ġ" D . url ", Ġcountry Code Ġ= Ġ" in ") ĊĠĠĠĠĠĠĠ Ġval Ġtv 5 Ġ= ĠT v ( name Ġ= Ġ" E ", Ġurl Ġ= Ġ" E . url ", Ġcountry Code Ġ= Ġ" ar ") ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġmutable ListOf ( tv 1 , Ġtv 2 , Ġtv 3 , Ġtv 4 , Ġtv 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġplaylist Id Ġ= Ġparse M 3 u UseCase . run ( Parse Param ( for Test Ġ= Ġall )). playlist Id ĊĠĠĠĠĠĠĠ Ġval Ġplaylist With T vs Ġ= Ġdata Manager . get Playlist With T vs ( playlist Id ) ĊĠĠĠĠĠĠĠ Ġval Ġuser With Playlist Ġ= Ġdata Manager . getUser With Playlist () ĊĠĠĠĠĠĠĠ Ġassert ( user With Playlist . play lists . size Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġassert ( playlist With T vs . playlist . playlist Name Ġ== Ġ" for Test . m 3 u ") ĊĠĠĠĠĠĠĠ Ġassert ( playlist With T vs . t vs . size Ġ== Ġ 5 ) ĊĠĠĠ Ġ} Ċ }