/* Ċ Ġ* Ġ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 . flow Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠDrop While Test Ġ: ĠTest Base () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Drop While () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġflow . drop While Ġ{ Ġfalse Ġ}. sum ()) ĊĠĠĠĠĠĠĠ ĠassertNull ( flow . drop While Ġ{ Ġtrue Ġ}. single OrNull ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 5 , Ġflow . drop While Ġ{ Ġit Ġ< Ġ 2 Ġ}. sum ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġflow . take ( 1 ). drop While Ġ{ Ġit Ġ> Ġ 1 Ġ}. single ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Empty Flow () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġflow Of < Int >(). drop While Ġ{ Ġtrue Ġ}. sum ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġflow Of < Int >(). drop While Ġ{ Ġfalse Ġ}. sum ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Error Cancel s Upstream () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( start Ġ= ĠCor outine Start . ATOMIC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhang Ġ{ Ġexpect ( 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Un re ached () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. drop While Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTest Exception () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexpect ( 1 ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < Test Exception >( flow ) ĊĠĠĠĠĠĠĠ Ġfinish ( 5 ) ĊĠĠĠ Ġ} Ċ } Ċ