/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . coroutines . stream Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġorg . junit . Test Ċ import Ġjava . lang . IllegalStateException Ċ import Ġkotlin . test .* Ċ Ċ class ĠCons ume As Flow Test Ġ: ĠTest Base () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Collect () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( list , Ġlist . stream (). consume As Flow (). toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Collect Inv okes Close () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( 3 , Ġ 4 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġexpect ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( list , Ġlist . stream (). onClose Ġ{ Ġexpect ( 2 ) Ġ}. consume As Flow (). toList ()) ĊĠĠĠĠĠĠĠ Ġfinish ( 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Collect Tw ice () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( 2 , Ġ 3 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġflow Ġ= Ġlist . stream (). onClose Ġ{ Ġexpect ( 2 ) Ġ} Ġ. consume As Flow () ĊĠĠĠĠĠĠĠ Ġexpect ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( list , Ġflow . toList ()) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalStateException > Ġ{ Ġflow . collect () Ġ} ĊĠĠĠĠĠĠĠ Ġfinish ( 3 ) ĊĠĠĠ Ġ} Ċ } Ċ