package Ġcom . example . the mov ied b app . di . auth Ċ Ċ import Ġcom . example . the mov ied b app . Main Cor outines Rule Ċ import Ġcom . example . the mov ied b app . di . modules . Network Api Module Test Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . hamcrest . Core Matchers Ċ import Ġorg . hamcrest . Matcher Assert Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAli Az az Al am Ġon Ġ 5 / 2 6 / 2 0 2 1 . Ċ Ġ*/ Ċ class ĠAuth Api Test Ġ: ĠNetwork Api Module Test < Auth Api >() Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapi Service : ĠAuth Api ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġcoroutine Rule Ġ= ĠMain Cor outines Rule () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Service Ġ= Ġcreate Service ( Auth Api :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Movie Data () Ġreturns Ġsingle ĠMovie `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġenqueue Response ("/ movie _ response . json ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvoke ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Service . get Movie Data ( 4 5 7 4 3 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġrequire NotNull ( response ) ĊĠĠĠĠĠĠĠ Ġmock WebServer . take Request () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body . id , ĠCore Matchers .` is `( 4 5 7 4 3 1 )) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body . poster _ path , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is ` ("/ 1 TR M DI BI 9 6 6 R 3 9 f zh dI 7 3 3 y 2 m 1 i . jpg ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body . release _ date , ĠCore Matchers .` is ` (" 2 0 1 3 - 0 2 - 1 3 ")) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body . pop ularity , ĠCore Matchers .` is `( 2 . 3 3 4 )) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body . overview , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is ` (" A Ġyoung Ġg ay Ġboy , Ġfrom Ġhis Ġbirth Ġto Ġhis Ġte en age Ġyears , Ġin Ġwhich Ġhe Ġexperiments Ġhis Ġsex ual ity Ġand Ġhis Ġown Ġboundaries , Ġto Ġthe Ġday Ġhe Ġfinally Ġme ets Ġhis Ġfather . Ġ ĠIn Ġthree Ġacts : ĠAct ĠI ĠâĢĶ ĠL ' An non ci ation Ġor ĠThe ĠCon ception Ġof Ġa ĠL ittle ĠG ay ĠBo y Ġ( 2 0 1 1 ); ĠAct ĠII ĠâĢĶ ĠL ittle ĠG ay ĠBo y , ĠChris T Ġis ĠDead Ġ( 2 0 1 2 ); Ġand ĠAct ĠIII ĠâĢĶ ĠH oly ĠTh ursday Ġ( The ĠLast ĠS upper ) Ġ( 2 0 1 3 ). ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body . spo ken _ languages [ 0 ]. name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is ` (" English ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body . genres [ 0 ]. name , ĠCore Matchers .` is ` (" D ram a ")) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body . ad ult , ĠCore Matchers .` is `( false )) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body . original _ language , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is ` (" fr ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Movie List () Ġreturns Ġlist Ġof ĠMov ies ĠIDs `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġenqueue Response ("/ movie _ list _ response . json ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvoke ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Service . get Movies List () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġrequire NotNull ( response . results ) ĊĠĠĠĠĠĠĠ Ġmock WebServer . take Request () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body [ 0 ]. ad ult , ĠCore Matchers .` is `( false )) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body [ 0 ]. id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is `( 4 5 7 4 3 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Movie ListBy Search () Ġreturns Ġlist Ġof ĠMov ies ĠIDs `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġenqueue Response ("/ movie _ list _ response . json ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvoke ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Service . get Search Movies List ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend _ date Ġ= Ġ" 2 2 - 0 5 - 2 0 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart _ date Ġ= Ġ" 0 9 - 0 5 - 2 0 2 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġrequire NotNull ( response . results ) ĊĠĠĠĠĠĠĠ Ġmock WebServer . take Request () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( response Body [ 0 ]. ad ult , ĠCore Matchers .` is `( false )) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Body [ 0 ]. id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCore Matchers .` is `( 4 5 7 4 3 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }