package Ġorg . wikipedia . page images Ċ Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġorg . junit . Test Ċ import Ġorg . wikipedia . datac lient . Wiki Site Ċ import Ġorg . wikipedia . datac lient . mw api . Mw Query Page Ċ import Ġorg . wikipedia . page . Page Title Ċ import Ġorg . wikipedia . page images . db . Page Image Ċ import Ġorg . wikipedia . test . Mock Ret rofit Test Ċ Ċ class ĠPage Images Client Test Ġ: ĠMock Ret rofit Test () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Throwable :: class ) ĊĠĠĠ Ġfun Ġtest Request Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġenqueue FromFile (" reading _ list _ page _ info . json ") ĊĠĠĠĠĠĠĠ Ġval Ġtitles Ġ= Ġmutable ListOf < Page Title >() ĊĠĠĠĠĠĠĠ Ġtitles . add ( PAGE _ TITLE _ OB AMA ) ĊĠĠĠĠĠĠĠ Ġtitles . add ( PAGE _ TITLE _ BID EN ) ĊĠĠĠĠĠĠĠ Ġget Observable ( titles ). test (). await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete (). assert No Errors () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb iden Ġ= Ġit [ PAGE _ TITLE _ BID EN ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġob ama Ġ= Ġit [ PAGE _ TITLE _ OB AMA ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb iden !!. api Title Ġ== Ġ" Jo e _ Bid en " Ġ&& Ġb iden . image Name Ġ== Ġ" https :// upload . wik imedia . org / wikipedia / commons / thumb / e / ea / Official _ portrait _ of _ V ice _ Pres ident _ Jo e _ Bid en . jpg / 2 5 5 px - Official _ portrait _ of _ V ice _ Pres ident _ Jo e _ Bid en . jpg " Ġ&& Ġob ama !!. api Title Ġ== Ġ" Bar ack _ Ob ama " Ġ&& Ġob ama . image Name Ġ== Ġ" https :// upload . wik imedia . org / wikipedia / commons / thumb / 8 / 8 d / Pres ident _ Bar ack _ Ob ama . jpg / 2 5 6 px - Pres ident _ Bar ack _ Ob ama . jpg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Throwable :: class ) ĊĠĠĠ Ġfun Ġtest Request Response ApiError () Ġ{ ĊĠĠĠĠĠĠĠ Ġenqueue FromFile (" api _ error . json ") ĊĠĠĠĠĠĠĠ Ġget Observable ( emptyList ()). test (). await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( Exception :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Throwable :: class ) ĊĠĠĠ Ġfun Ġtest Request Response Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġenqueue 4 0 4 () ĊĠĠĠĠĠĠĠ Ġget Observable ( emptyList ()). test (). await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( Exception :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Throwable :: class ) ĊĠĠĠ Ġfun Ġtest Request Response Malformed () Ġ{ ĊĠĠĠĠĠĠĠ Ġenqueue Malformed () ĊĠĠĠĠĠĠĠ Ġget Observable ( emptyList ()). test (). await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( Exception :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Observable ( titles : ĠList < Page Title >): ĠObservable < Map < Page Title ?, ĠPage Image >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi Service . getPage Images (" foo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Map From Pages ( WI K IS ITE _ TEST , Ġtitles , Ġit . query !!. pages !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠW IK IS ITE _ TEST Ġ= ĠWiki Site . for Language Code (" test ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPAGE _ TITLE _ BID EN Ġ= ĠPage Title (" Jo e ĠB iden ", ĠW IK IS ITE _ TEST ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPAGE _ TITLE _ OB AMA Ġ= ĠPage Title (" Bar ack ĠOb ama ", ĠW IK IS ITE _ TEST ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġimage Map From Pages ( wiki : ĠWiki Site , Ġtitles : ĠList < Page Title >, Ġpages : ĠList < Mw Query Page >): ĠMap < Page Title ?, ĠPage Image > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Images Map Ġ= Ġmutable Map Of < Page Title ?, ĠPage Image >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnominal Ġcase ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitles Map Ġ= Ġmutable Map Of < String , ĠPage Title >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( title Ġin Ġtitles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitles Map [ title . prefix ed Text ] Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthumbnail Sources Map Ġ= Ġmutable Map Of < String , ĠString ?> () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno inspection ĠConstant Conditions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( page Ġin Ġpages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Sources Map [ Page Title ( null , Ġpage . title , Ġwiki ). prefix ed Text ] Ġ= Ġpage . thumb Url () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! page . converted From . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠpageTitle Ġ= ĠPage Title ( null , Ġpage . converted From !! , Ġwiki ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Sources Map [ page Title . prefix ed Text ] Ġ= Ġpage . thumb Url () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! page . redirect From . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Sources Map [ Page Title ( null , Ġpage . redirect From !! , Ġwiki ). prefix ed Text ] Ġ= Ġpage . thumb Url () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġtitles Map . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thumbnail Sources Map . containsKey ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġtitles Map [ key ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Images Map [ title ] Ġ= ĠPage Image ( title !! , Ġthumbnail Sources Map [ key ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpage Images Map ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ