/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 2 1 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . coroutines . channels Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠLinkedList Channel Test Ġ: ĠTest Base () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Basic () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠChannel < Int >( Channel . UN LIMIT ED ) ĊĠĠĠĠĠĠĠ Ġc . send ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( c . try Send ( 2 ). is Success ) ĊĠĠĠĠĠĠĠ Ġc . send ( 3 ) ĊĠĠĠĠĠĠĠ Ġcheck ( c . close ()) ĊĠĠĠĠĠĠĠ Ġcheck (! c . close ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġc . receive ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġc . try Receive (). get OrNull ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġc . receive Catch ing (). get OrNull ()) ĊĠĠĠĠĠĠĠ ĠassertNull ( c . receive Catch ing (). get OrNull ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Consume All () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= ĠChannel < Int >( Channel . UN LIMIT ED ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . send ( i ) Ġ// Ġbuffers ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġq . cancel () ĊĠĠĠĠĠĠĠ Ġcheck ( q . is Closed For Send ) ĊĠĠĠĠĠĠĠ Ġcheck ( q . is Closed For Receive ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < Cancellation Exception > Ġ{ Ġq . receive () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Cancel With Cause () Ġ= Ġrun Test ({ Ġit Ġis ĠTest Cancellation Exception Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠChannel < Int >( Channel . UN LIMIT ED ) ĊĠĠĠĠĠĠĠ Ġchannel . cancel ( Test Cancellation Exception ()) ĊĠĠĠĠĠĠĠ Ġchannel . receive () ĊĠĠĠ Ġ} Ċ } Ċ