package Ġcover os R 3 z . bdd framework Ċ Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠA Ġscenario , Ġpart Ġof Ġa Ġ[ User Story ]. Ċ Ġ* Ċ Ġ* ĠThis Ġrepresents Ġa Ġconcrete Ġexample Ġof Ġthe Ġ[ User Story ] Ġin Ġaction . Ċ Ġ* Ċ Ġ* ĠIt Ġshould Ġbe Ġsimple , Ġclear , Ġtest able , Ġsmall , Ġand Ġfor Ġour Ġpurposes Ġhere , Ċ Ġ* Ġtest able Ġby Ġautomation . Ċ Ġ* Ċ Ġ* Ġ@ param Ġshort Desc Ġa Ġshort Ġone - line Ġdescription Ġof Ġthis Ġscenario Ċ Ġ* Ġ@ param Ġsteps Ġthe Ġmultiple Ġsteps Ġof Ġthe Ġscenario . Ġ ĠEach Ġline Ġ( each Ġstep ) Ġis Ġa Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Ġentry Ġin Ġthe Ġlist . Ċ Ġ*/ Ċ class ĠB DD Scenario ( private Ġval Ġshort Desc : ĠString , Ġsteps : ĠList < String >, Ġprivate Ġval Ġuser Story : ĠUser Story ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS ear ches Ġfor Ġanything Ġin Ġa Ġstring Ġthat Ġisn 't Ġal phanumeric ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġonly Alpha Num erics Ġ= Ġ"[ ^ a - zA - Z 0 - 9 ] ". to Regex () ĊĊĠĠĠ Ġprivate Ġval Ġrendered Steps Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrendered Steps . addAll ( steps . map { Ġ"< not - done >$ it </ not - done >" Ġ} Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmark Done ( step : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġrendered Steps . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrendered Steps [ i ] Ġ= Ġrendered Steps [ i ]. replace ("< not - done >$ step </ not - done >", Ġ"< done >$ step </ done >") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwrite BDD File () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite BDD File () Ġ{ ĊĠĠĠĠĠĠĠ ĠFile (" build / bdd /${ user Story . key }/ "). mkdir s () ĊĊĠĠĠĠĠĠĠ Ġval Ġstory File Ġ= ĠFile (" build / bdd /${ user Story . key }/ story . html ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! story File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstory File . write Text ("< user story >\ n ${ user Story . story . trim Indent () }\ n </ user story >") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġscenario Name Ġ= Ġonly Alpha Num erics . replace ( short Desc , Ġ"_ ") ĊĠĠĠĠĠĠĠ ĠFile (" build / bdd /${ user Story . key }/ scenario _$ scenario Name . html "). write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"< scenario >$ short Desc </ scenario >\ n " Ġ+ Ġrendered Steps . join ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ