/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 Ġpak isan Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ċ Ġ* Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe Ċ Ġ* ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ċ Ġ* Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ċ Ġ* Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ċ Ġ* Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ċ Ġ* Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL Ċ Ġ* ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġpak isan . tele graph cli . data . test . response . page Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġpak isan . tele graph cli . data . gson . data . G Response Ċ import Ġpak isan . tele graph cli . data . page . Page Ċ import Ġpak isan . tele graph cli . data . response . Response Ċ import Ġpak isan . tele graph cli . data . response . Result Ċ import Ġjava . io . FileReader Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Paths Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠGet Page ListResponse Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpage ListResponse Type Ġ= Ġobject : ĠType Token < Response < Result >>() {}. type ĊĊĠĠĠ Ġlateinit Ġvar Ġpages : ĠList < Page > ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġprepare Pages () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage 1 Ġ= ĠPage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample - Page - 1 0 - 2 6 - 1 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// tele gra . ph / Sample - Page - 1 0 - 2 6 - 1 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample ĠPage ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hello , Ġworld !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Anonymous ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcan Edit Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpage 2 Ġ= ĠPage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample - Page - 1 0 - 2 6 - 1 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// tele gra . ph / Sample - Page - 1 0 - 2 6 - 1 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample ĠPage ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hello , Ġworld !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Anonymous ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcan Edit Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġpages Ġ= ĠlistOf ( page 1 , Ġpage 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Page ListResponse Deserialization Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġval Ġjson As Bytes Ġ= ĠFiles . read All Bytes ( Paths . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGet Page ListResponse Test :: class . java . getResource ("/ response / page / getPage ListResponse . json "). path )) ĊĠĠĠĠĠĠĠ Ġval Ġpage ListResponse As Json Ġ= ĠString ( json As Bytes ) ĊĠĠĠĠĠĠĠ Ġval Ġpage ListResponse FromJson : ĠResponse < Result > Ġ= Ġgson . fromJson ( page ListResponse As Json , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage ListResponse Type ) ĊĠĠĠĠĠĠĠ Ġval Ġpage ListResponse : ĠResponse < Result > Ġ= ĠG Response . response ( page ListResponse As Json , Ġpage ListResponse Type ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( page ListResponse FromJson , Ġpage ListResponse , Ġ" mal formed Ġpage List Ġresponse .") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Page ListResponse Serialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠFileReader ( Get Page ListResponse Test :: class . java . getResource ("/ response / page / getPage ListResponse . json "). path ) ĊĠĠĠĠĠĠĠ Ġval Ġpage ListResponse Ġ= Ġgson . toJson ( gson . fromJson < Response < Result >>( json , Ġpage ListResponse Type )) ĊĠĠĠĠĠĠĠ Ġval Ġg Page ListResponse Ġ= ĠResponse ( true , Ġresult Ġ= ĠResult ( 1 1 9 6 9 , Ġpages )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( page ListResponse , ĠG Response . response ( g Page ListResponse ), Ġ" mal formed Ġpage List ĠJSON .") ĊĠĠĠ Ġ} Ċ Ċ }