package Ġcom . example . test bank . repository . remote Ċ Ċ import Ġcom . example . test bank . base . dummy . Dummy Ċ import Ġcom . example . test bank . repository . local . model . search . Search Model Ċ import Ġcom . example . test bank . repository . remote . dto .* Ċ import Ġcom . example . test bank . repository . remote . service . K ak ao Rest Search Service Ċ import Ġcom . mark mount . w ad iz . base . Base Test Ċ import Ġcom . n ha ar man . expect . expect Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġio . reactivex . Single Ċ import Ġorg . junit . Test Ċ Ċ @ Suppress (" Non Ascii Characters ") Ċ class ĠTest Remote Repository Ġ: ĠBaseTest () Ġ{ ĊĠĠĠ Ġval Ġrepository : ĠRemote Repository Ġby Ġlazy Ġ{ ĠRemote Repository ( search Service ) Ġ} ĊĠĠĠ Ġvar Ġsearch Service Ġ= Ġmock < K ak ao Rest Search Service >() ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ê² Ģ ìĥī ê³¼ Ġìļ° ìĦł ìĪ ľ ìľĦ Ġë³Ģê²½ ĠíĻķìĿ¸ `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . image Dto ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . vc lip Dto ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). blocking Get () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. size ). toBe ( 4 ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. first () Ġis ĠSearch Model ). toBe ( true ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. first ()?. thumbnail Url ). toBe (" 3 ") ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. get ( 1 )?. thumbnail Url ). toBe (" 2 ") ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. get ( 2 )?. thumbnail Url ). toBe (" 1 ") ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. get ( 3 )?. thumbnail Url ). toBe (" 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` image Ġê²°ê³¼ Ġì¤ĳ Ġis End Ġê°Ĵ Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . image Dto ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . vc lip Dto ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). blocking Get () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Image End ). toBe ( true ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Video End ). toBe ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` vc lip Ġê²°ê³¼ Ġì¤ĳ Ġis End Ġê°Ĵ Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . image Dto ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . vc lip Dto ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). blocking Get () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Image End ). toBe ( false ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Video End ). toBe ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` image Ġê²°ê³¼ Ġinvalid Ġargument `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġimage Dto Ġ= Ġmock < K ak ao Image Search Dto > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġerror Type Ġ} Ġdo Return Ġ" InvalidArgument " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġmessage Ġ} Ġdo Return Ġ" page Ġis Ġmore Ġthan Ġmax " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( image Dto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . vc lip Dto ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). blocking Get () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Image End ). toBe ( true ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Video End ). toBe ( false ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. size ). toBe ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` image ĠìĻ Ģ Ġv clip Ġê²°ê³¼ Ġinvalid Ġargument `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġimage Dto Ġ= Ġmock < K ak ao Image Search Dto > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġerror Type Ġ} Ġdo Return Ġ" InvalidArgument " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġmessage Ġ} Ġdo Return Ġ" page Ġis Ġmore Ġthan Ġmax " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġv clip Dto Ġ= Ġmock < K ak ao VC lip Search Dto > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġerror Type Ġ} Ġdo Return Ġ" InvalidArgument " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġmessage Ġ} Ġdo Return Ġ" page Ġis Ġmore Ġthan Ġmax " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( image Dto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( vc lip Dto ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). blocking Get () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Image End ). toBe ( true ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . is Video End ). toBe ( true ) ĊĠĠĠĠĠĠĠ Ġexpect ( result . list ?. size ). toBe ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` image Ġê²°ê³¼ Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthrowable Ġ= ĠThrowable (" error ") ĊĠĠĠĠĠĠĠ Ġsearch Service Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġimage ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . error ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġv clip ( any (), Ġany (), Ġany (), Ġany ()) Ġ} Ġdo Return ĠSingle . just ( Dummy . vc lip Dto ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . search (" 1 ", Ġ 1 ). test () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġresult . assert Error ( throwable ) ĊĠĠĠ Ġ} Ċ }