package Ġio . tool ist icon . addons . ax on . j given . saga Ċ Ċ import Ġcom . t ng tech . j given . annotation . Provided Scenario State Ċ import Ġio . tool ist icon . addons . j given . G IV EN Ċ import Ġio . tool ist icon . addons . j given . THEN Ċ import Ġio . tool ist icon . addons . j given . WHEN Ċ import Ġorg . ax on framework . test . saga . Saga TestFixture Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠCount ing Saga Scenario Test Ġ: ĠS aga Fixture Scenario Test < Count ing Saga >() Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval Ġaggregate Id Ġ= Ġ" 1 " ĊĠĠĠ Ġval ĠSTART Ġ= ĠS aga Event . Started ( aggregate Id ) ĊĠĠĠ Ġval ĠSTOP Ġ= ĠS aga Event . Stopped ( aggregate Id ) ĊĠĠĠ Ġval ĠCOUNT Ġ= ĠS aga Event . Increment ed ( aggregate Id , Ġ 1 ) ĊĠ Ġ} ĊĊĠ Ġ@ Provided Scenario State ĊĠ Ġprivate Ġval Ġfixture Ġ: ĠS aga TestFixture < Count ing Saga > Ġ= ĠS aga TestFixture ( Count ing Saga :: class . java ). apply Ġ{ ĊĠĠĠ Ġwith Trans ience Check Disabled () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` no Ġs aga Ġstarted `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. no Prior Activity () ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect No Active S ag as () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` saga Ġstarts Ġon Ġevent `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. no Prior Activity () ĊĊĠĠĠ ĠWHEN ĊĠĠĠĠĠ Ġ. aggregate Pub lishes ( aggregate Id , ĠSTART ) ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect Active S ag as ( 1 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` can Ġfinish Ġs aga `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. aggregate Published Event ( aggregate Id , ĠSTART ) ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect Active S ag as ( 1 ) ĊĊĠĠĠ ĠWHEN ĊĠĠĠĠĠ Ġ. aggregate Pub lishes ( aggregate Id , ĠSTOP ) ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect No Active S ag as () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` publish Ġmore Ġthen Ġone Ġevent `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. aggregate Published Events ( aggregate Id , ĠSTART , ĠCOUNT ) ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect Active S ag as ( 1 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` expect Ġcommands `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. aggregate Published Event ( aggregate Id , ĠSTART ) ĊĊĠĠĠ ĠWHEN ĊĠĠĠĠĠ Ġ. aggregate Pub lishes ( aggregate Id , ĠCOUNT ) ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. expect Dis patched Command ( Saga Command . Increment Aggregate ( aggregate Id )) ĊĠ Ġ} Ċ } Ċ