/* Ċ * ĠCopyright Ġ 2 0 1 4 - 2 0 2 1 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ */ Ċ Ċ package Ġio . ktor . utils . io Ċ Ċ import Ġio . ktor . test . dispatcher .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠReader Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Cancel Exception Logged Once () Ġ= Ġtest Suspend Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfail In Handler Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠCor outine ExceptionHandler Ġ{ Ġcoroutine Context , Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail In Handler Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠGlobal Scope . reader ( Dispatch ers . Un conf ined Ġ+ Ġhandler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Expected ") ĊĠĠĠĠĠĠĠ Ġ}. channel ĊĊĠĠĠĠĠĠĠ Ġvar Ġfailed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . write Byte ( 4 2 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( cause : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Expected ", Ġcause . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( failed , Ġ" Channel Ġshould Ġfail Ġwith Ġthe Ġexception ") ĊĠĠĠĠĠĠĠ ĠassertFalse ( fail In Handler , Ġ" Exception Ġshould Ġbe Ġthrown Ġonly Ġfrom Ġchannel ") ĊĠĠĠ Ġ} Ċ } Ċ