/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 7 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . intellij . stats . completion Ċ Ċ import Ġcom . intellij . stats . completion . events . Log Event Ċ import Ġcom . intellij . stats . validation . Input Session Validator Ċ import Ġcom . intellij . stats . validation . Simple Session Validation Result Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ private Ġfun ĠList < Log Event >. serialize (): ĠList < String > Ġ= Ġmap Ġ{ ĠLog Event Serializer . toString ( it ) Ġ} ĊĊ Ċ class ĠEvent Stream Validator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` simple Ġsequence Ġof Ġactions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( Log Event Fixtures . completion _ started _ 3 _ items _ shown , ĠLog Event Fixtures . explicit _ select _ position _ 0 ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġlist . map Ġ{ ĠLog Event Serializer . toString ( it ) Ġ}, Ġempty List ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sample Ġerror Ġsequence Ġof Ġactions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( Log Event Fixtures . completion _ started _ 3 _ items _ shown , ĠLog Event Fixtures . explicit _ select _ position _ 1 ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġexpected Out Ġ= Ġempty List (), Ġexpected Err Ġ= Ġlist . serialize ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` up Ġdown Ġactions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . completion _ started _ 3 _ items _ shown , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . down _ event _ new _ pos _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . explicit _ select _ position _ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġlist . serialize (), Ġexpected Err Ġ= Ġempty List ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` up Ġdown Ġactions Ġwrong `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . completion _ started _ 3 _ items _ shown , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . down _ event _ new _ pos _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . up _ pressed _ new _ pos _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . explicit _ select _ position _ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġexpected Out Ġ= Ġempty List (), Ġexpected Err Ġ= Ġlist . serialize ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` selected Ġby Ġtyping Ġrelax ed Ġconditions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . completion _ started _ 3 _ items _ shown , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . type _ event _ current _ pos _ 0 _ left _ ids _ 1 _ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . type _ event _ current _ pos _ 0 _ left _ id _ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . selected _ by _ typing _ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġexpected Out Ġ= Ġlist . serialize (), Ġexpected Err Ġ= Ġempty List ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` selected Ġby Ġtyping Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . completion _ started _ 3 _ items _ shown , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . type _ event _ current _ pos _ 0 _ left _ ids _ 0 _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . down _ event _ new _ pos _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Event Fixtures . explicit _ select _ position _ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvalidate ( list , Ġexpected Out Ġ= Ġlist . serialize (), Ġexpected Err Ġ= Ġempty List ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate ( list : ĠList < Log Event >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Out : ĠList < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Err : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput : ĠList < String > Ġ= Ġlist . map Ġ{ ĠLog Event Serializer . toString ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSimple Session Validation Result () ĊĠĠĠĠĠĠĠ Ġval Ġseparator Ġ= ĠInput Session Validator ( result ) ĊĠĠĠĠĠĠĠ Ġseparator . validate ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result . error Lines ). isEqualTo ( expected Err ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . valid Lines ). isEqualTo ( expected Out ) ĊĠĠĠ Ġ} Ċ Ċ }