package Ġio . github . ry b alk ins d . ko http . dsl Ċ Ċ import Ġio . github . ry b alk ins d . ko http . jackson . ext . toJson Ċ import Ġio . github . ry b alk ins d . ko http . assertContains At Least Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠUpload Dsl Kt Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` small Ġfile Ġupload `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġupload Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" http :// postman - echo . com / post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Uri Ġ= Ġthis . java Class . getResource ("/ cat . gif "). to URI () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile ( file Uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparsed Response Ġ= Ġr . toJson () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 4 6 2 1 4 , Ġparsed Response [" headers "][" content - length "]. as Int ()) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġparsed Response [" headers "][" content - type "]. as Text (). startsWith (" multipart / mixed ; Ġboundary =") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` download Ġfile Ġthen Ġupload `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdownload Response Ġ= Ġhttp Get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġ" speed test . ftp . ot enet . gr " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġ"/ files / test 1 Mb . db " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 0 , Ġdownload Response . code ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 , Ġdownload Response . body ()?. content Length ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġupload Response Ġ= Ġupload Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" http :// postman - echo . com / post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdownload Response . body ()?. bytes () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes (" data ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 0 , Ġupload Response . code ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 Ġ+ Ġ 1 7 3 , Ġupload Response . toJson ()[" headers "][" content - length "]. as Int ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġfile Ġupload Ġwith Ġheaders Ġand Ġparameters `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Headers Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" one " Ġto Ġ" 4 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cookie " Ġto Ġ" aaa = bbb ; Ġc cc = 4 2 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Args Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" listOf Params " Ġto Ġ""" [" val 1 "," val 2 "," val 3 "] """, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" query " Ġto Ġ" cat " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġupload Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" one " Ġto Ġ 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" aaa " Ġto Ġ" bbb " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ccc " Ġto Ġ 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" listOf Params " Ġto ĠlistOf (" val 1 ", Ġ" val 2 ", Ġ" val 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" query " Ġto Ġ" cat " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl (" http :// postman - echo . com / post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Uri Ġ= Ġthis . java Class . getResource ("/ cat . gif "). to URI () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile ( file Uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparsed Response Ġ= Ġr . toJson () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Args [" query "], Ġparsed Response [" args "][" query "]. as Text ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Args [" listOf Params "], Ġparsed Response [" args "][" listOf Params "]. toString ()) ĊĠĠĠĠĠĠĠ Ġassert Contains At Least ( expected Headers , Ġparsed Response [" headers "]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 4 6 2 1 4 , Ġparsed Response [" headers "][" content - length "]. as Int ()) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġparsed Response [" headers "][" content - type "]. as Text (). startsWith (" multipart / mixed ; Ġboundary =") Ġ} ĊĠĠĠ Ġ} Ċ } Ċ