import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . g her kin . Feature Ċ import Ġkotlin . test . assertTrue Ċ Ċ object ĠAssign Employee To The Factory Feature Ġ: ĠSpe k ({ ĊĠĠĠ Ġlateinit Ġvar Ġexceptions : ĠMutable List < Throwable > ĊĠĠĠ Ġlateinit Ġvar Ġstate : ĠFactory State ĊĠĠĠ ĠFeature (" Assign Ġemployee Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠ ĠbeforeEach Scenario Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠFactory State ( emptyList ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexceptions Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠScenario (" Assign Ġemployee Ġto Ġan Ġempty Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" An Ġempty Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" An Ġemployee Ġnamed Ġ\" F ry \" Ġcomes Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun With Catch And AddTo Exception List ( exceptions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġassign Employee To Factory (" F ry ", Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" F ry Ġis Ġassigned Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . journal . contains ( Employee Assigned To Factory (" F ry ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" An Ġalready Ġassigned Ġemployee Ġis Ġassigned Ġagain ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" A Ġfactory Ġwhere Ġan Ġemployee Ġnamed Ġ\" F ry \" Ġis Ġassigned ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠFactory State ( listOf ( Employee Assigned To Factory (" F ry "))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" An Ġemployee Ġnamed Ġ\" F ry \" Ġcomes Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun With Catch And AddTo Exception List ( exceptions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġassign Employee To Factory (" F ry ", Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" There Ġshould Ġbe Ġan Ġerror ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexceptions . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" The Ġerror Ġmessage Ġshould Ġcontain Ġ\" the Ġname Ġof ĠF ry Ġonly Ġone Ġcan Ġhave \" Ġ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue (" The Ġmessage Ġcontains Ġ${ exceptions . first (). message }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexceptions . first (). message ?. contains (" the Ġname Ġof ĠF ry Ġonly Ġone Ġcan Ġhave ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" B ender Ġcomes Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" An Ġempty Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" An Ġemployee Ġnamed ĠB ender Ġis Ġassigned Ġto Ġthe Ġfactory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun With Catch And AddTo Exception List ( exceptions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġassign Employee To Factory (" B ender ", Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" There Ġshould Ġbe Ġan Ġerror ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġexceptions . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" The Ġerror Ġmessage Ġshould Ġcontain Ġ\" Gu ys Ġwith Ġname Ġ' b ender ' Ġare Ġtrouble \" Ġ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue (" The Ġmessage Ġcontains Ġ${ exceptions . first (). message }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexceptions . first (). message ?. contains (" Gu ys Ġwith Ġthe Ġname Ġ' b ender ' Ġare Ġtrouble ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ