package Ġcom . t amb apps . http . client Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . t amb apps . http . client . response . Response Ċ import Ġcom . t amb apps . http . client . response . handler . Response Handler Ċ import Ġjunit . framework . Assert . assertEquals Ċ import Ġorg . junit . Assert Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠAbstract Test Ġ{ ĊĠĠĠ Ġfun Ġget Assert s ( response : ĠResponse < Post >) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Should Ġbe Ġsuccessful ", Ġresponse . is Successful ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse (" Should n 't Ġbe Ġan Ġerror Ġcode ", Ġresponse . is ErrorResponse ) ĊĠĠĠĠĠĠĠ Ġassert Post ( response . data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Post ( post : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" Should n 't Ġbe Ġnull ", Ġpost ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" Should n 't Ġbe Ġnull ", Ġpost . id ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" Should n 't Ġbe Ġnull ", Ġpost . userId ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" Should n 't Ġbe Ġnull ", Ġpost . body ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" Should n 't Ġbe Ġnull ", Ġpost . title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetList Assert s ( response : ĠResponse < List < Post >>) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Should Ġbe Ġsuccessful ", Ġresponse . is Successful ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse (" Should n 't Ġbe Ġan Ġerror Ġcode ", Ġresponse . is ErrorResponse ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( post Ġin Ġresponse . data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Post ( post ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetList Assert sWith UserId ( response : ĠResponse < List < Post >>, ĠuserId : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetList Assert s ( response ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( post Ġin Ġresponse . data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Should Ġbe Ġequal ", ĠuserId , Ġpost . userId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput Assert s ( response : ĠResponse < Post >, Ġpost : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse (" Should n 't Ġbe Ġan Ġerror Ġcode ", Ġresponse . is ErrorResponse ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Should Ġbe Ġsuccessful ", Ġresponse . is Successful ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Should Ġbe Ġequal ", Ġpost , Ġresponse . data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpost Assert s ( response : ĠResponse < Post >, Ġpost : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Should Ġbe Ġsuccessful ", Ġresponse . is Successful ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse (" Should n 't Ġbe Ġnull ", Ġresponse . is ErrorResponse ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Data Ġ= Ġresponse . data ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Should Ġbe Ġequal ", Ġpost . userId , Ġresponse Data . userId ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Should Ġbe Ġequal ", Ġpost . title , Ġresponse Data . title ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Should Ġbe Ġequal ", Ġpost . body , Ġresponse Data . body ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Assert s ( response : ĠResponse < Post >) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Should Ġbe Ġsuccessful ", Ġresponse . is Successful ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse (" Should n 't Ġbe Ġan Ġerror Ġcode ", Ġresponse . is ErrorResponse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPost ( val Ġid : ĠInt , Ġval ĠuserId : ĠInt , Ġval Ġtitle : ĠString , Ġval Ġbody : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġequals ( o : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o Ġ== Ġnull Ġ|| Ġjava Class Ġ!= Ġo . java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Ġ= Ġo Ġas ĠPost ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġid Ġ== Ġpost . id Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ== Ġpost . userId Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ== Ġpost . title Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ== Ġpost . body ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠObjects . hash ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Post {" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id =" Ġ+ Ġid Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", ĠuserId =" Ġ+ ĠuserId Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġtitle ='" Ġ+ Ġtitle Ġ+ Ġ'\'' Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġbody ='" Ġ+ Ġbody Ġ+ Ġ'\'' Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' }' ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAPI _ URL Ġ= Ġ" https :// json placeholder . typ icode . com " ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠG SON Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠRESP ONSE _ HANDLER Ġ= Ġobject Ġ: ĠResponse Handler < Post > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconvert ( inputStream : ĠInputStream ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠG SON . fromJson ( InputStream Reader ( inputStream ), ĠPost :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }