package Ġcom . y od le . android . kotlin demo . service Ċ Ċ import Ġcom . y od le . android . kotlin demo . Main App Ċ import Ġcom . y od le . android . kotlin demo . d agger . App Component Ċ import Ġcom . y od le . android . kotlin demo . model . Repository Ċ import Ġcom . y od le . android . kotlin demo . model . Repository Owner Ċ import Ġcom . y od le . android . kotlin demo . model . Repository SearchResults Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito .* Ċ import Ġrx . Observable Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠGitHub ApiService Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġgit Hub ApiService : ĠGitHub ApiService ĊĠĠĠ Ġlateinit Ġvar Ġgit Hub Service : ĠGitHub Service ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMain App . graph Ġ= Ġmock ( App Component :: class . java ) ĊĠĠĠĠĠĠĠ Ġgit Hub ApiService Ġ= Ġmock ( GitHub ApiService :: class . java ) ĊĠĠĠĠĠĠĠ Ġgit Hub Service Ġ= ĠGitHub Service () ĊĠĠĠĠĠĠĠ Ġgit Hub Service . git Hub ApiService Ġ= Ġgit Hub ApiService ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Repositories _ when Empty Query _ returns Empty Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepositories Ġ= Ġgit Hub Service . search Repositories (" "). to Blocking (). first () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( array ListOf (), Ġrepositories ) ĊĠĠĠĠĠĠĠ Ġverify Zero Interactions ( git Hub ApiService ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Repositories _ when All Whitespace Query _ returns Empty Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepositories Ġ= Ġgit Hub Service . search Repositories (" ĠĠ Ġ"). to Blocking (). first () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( array ListOf (), Ġrepositories ) ĊĠĠĠĠĠĠĠ Ġverify Zero Interactions ( git Hub ApiService ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Repositories _ when Valid Query _ returns Api Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= Ġbuild Repository () ĊĠĠĠĠĠĠĠ Ġval Ġrepository SearchResults Ġ= ĠRepository SearchResults ( 1 , Ġfalse , Ġarray ListOf ( repository )) ĊĠĠĠĠĠĠĠ Ġ` when `( git Hub ApiService . search Repositories (" test ")). thenReturn ( Observable . just ( repository SearchResults )) ĊĊĠĠĠĠĠĠĠ Ġval Ġrepositories Ġ= Ġgit Hub Service . search Repositories (" test "). to Blocking (). first () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( array ListOf ( repository ), Ġrepositories ) ĊĠĠĠĠĠĠĠ Ġverify ( git Hub ApiService ). search Repositories (" test ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠData Ġhelper Ġfunctions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbuild Repository () Ġ= ĠRepository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull _ name Ġ= Ġ" full _ name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠRepository Owner ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Ġ= Ġ" login ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar _ url Ġ= Ġ" avatar _ url ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" url ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" type " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhtml _ url Ġ= Ġ" html _ url ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" description ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" url ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreated _ at Ġ= Ġ" 2 0 1 2 - 0 2 - 1 3 T 1 7 : 2 9 : 5 8 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdated _ at Ġ= Ġ" 2 0 1 6 - 0 6 - 1 2 T 0 3 : 3 3 : 0 9 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpushed _ at Ġ= Ġ" 2 0 1 6 - 0 6 - 1 1 T 1 4 : 2 7 : 3 1 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhomepage Ġ= Ġ" homepage ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġst arg az ers _ count Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch ers _ count Ġ= Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch ers Ġ= Ġ" 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscore Ġ= Ġ 1 . 0 ĊĠĠĠ Ġ) Ċ }