package Ġcom . github . func zz . rocket _ launcher . core . domain . model . launcher Ċ Ċ import Ġcom . github . func zz . rocket _ launcher . core . domain . model . launcher . state .* Ċ import Ġio . kot lint est . matchers . result . shouldBe Success Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġjava . util .* Ċ Ċ internal Ġclass ĠLaunch er Test Ġ: ĠString Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ" Ready Ġ-- ABORT --> ĠAbort ed " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbort ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠAbort ed , Ġcounter Ġ= ĠOptional . empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠReady ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . ABORT , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Ready Ġ-- START ( 1 0 ) --> ĠCount ing " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCount ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠCount ing , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠReady ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . START ( 1 0 u ), Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Count ing Ġ-- ABORT --> ĠAbort ed " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbort ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠAbort ed , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠCount ing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er ( counter Ġ= ĠOptional . of ( 1 0 u )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . ABORT , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Count ing Ġ-- LA UNCH --> ĠLa unched " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLa unched , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠLa unched , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠCount ing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er ( counter Ġ= ĠOptional . of ( 1 0 u )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . LA UNCH , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Count ing Ġ<-- DECRE MENT " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCount ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠCount ing , Ġcounter Ġ= ĠOptional . of ( 9 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠCount ing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er ( state Ġ= ĠCount ing , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . DECRE MENT , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Abort ed Ġ-- FIN ISH --> ĠEND " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠEnd , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠAbort ed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er ( counter Ġ= ĠOptional . of ( 1 0 u )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . FIN ISH , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" La unched Ġ-- FIN ISH --> ĠEND " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch er ( state Ġ= ĠEnd , Ġcounter Ġ= ĠOptional . of ( 1 0 u )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠLa unched ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġctx Ġ= ĠLaunch er ( counter Ġ= ĠOptional . of ( 1 0 u )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġstate . fire ( Launcher Event . FIN ISH , Ġctx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Success Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }