import Ġio . ktor . server . plugins . doub l ere ceive .* Ċ import Ġio . ktor . utils . io .* Ċ import Ġio . ktor . utils . io . core .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġorg . junit .* Ċ import Ġorg . junit . Assert .* Ċ import Ġkotlin . coroutines .* Ċ Ċ /* Ċ Ġ* ĠCopyright Ġ 2 0 1 4 - 2 0 2 2 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ class ĠDouble Receive Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest File Cache () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠByteArray ( 1 6 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ) Ġ{ Ġit . to Byte () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠFile Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByte Read Channel ( content ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 9 6 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEmpty Coroutine Context ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Ġ= Ġcache . read (). read Remaining (). read Bytes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ArrayEquals ( content , Ġreceived ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest InMemory Cache () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠByteArray ( 1 6 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ) Ġ{ Ġit . to Byte () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĠMemory Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByte Read Channel ( content ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEmpty Coroutine Context ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= Ġcache . read () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Ġ= Ġchannel . read Remaining (). read Bytes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ArrayEquals ( content , Ġreceived ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ