package Ġio . tool ist icon . testing . j given Ċ Ċ import Ġcom . t ng tech . j given . Stage Ċ import Ġcom . t ng tech . j given . annotation . Scenario State Ċ import Ġcom . t ng tech . j given . annotation . Scenario State . Resolution . NAME Ċ import Ġcom . t ng tech . j given . junit 5 . Simple Scenario Test Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ /** Ċ Ġ* ĠSimple Ġexample Ġusing ĠG IV EN / WHEN / THEN Ġextensions , Ġthe Ġstep () Ġlambda Ġand Ġthe Ġall Ġopen Ġannotation . Ċ Ġ*/ Ċ class ĠCalculator Example Test Ġ: ĠSimple Scenario Test < Calculator Stage >() Ġ{ ĊĊĠ Ġ@ Test ĊĠ Ġinternal Ġfun Ġ` calculator Ġadds Ġtwo Ġnumbers `() Ġ{ ĊĠĠĠ ĠG IV EN ĊĠĠĠĠĠ Ġ. ` the Ġfirst Ġnumber Ġis Ġ$ `( 4 ) ĊĠĠĠĠĠ Ġ. AND ĊĠĠĠĠĠ Ġ. ` the Ġsecond Ġnumber Ġis Ġ$ `( 7 ) ĊĊĠĠĠ ĠWHEN ĊĠĠĠĠĠ Ġ. ` both Ġnumbers Ġare Ġadded `() ĊĊĠĠĠ ĠTHEN ĊĠĠĠĠĠ Ġ. ` the Ġsum Ġis Ġ$ `( 1 1 ) ĊĠ Ġ} Ċ } Ċ Ċ @ J Given Kotlin Stage Ċ class ĠCalculator Stage Ġ: ĠStage < Calculator Stage >() Ġ{ ĊĊĠ Ġ@ Scenario State ( resolution Ġ= ĠNAME ) ĊĠ Ġvar Ġfirst Number : ĠInt Ġ= Ġ 0 ĊĊĠ Ġ@ Scenario State ( resolution Ġ= ĠNAME ) ĊĠ Ġvar Ġsecond Number : ĠInt Ġ= Ġ 0 ĊĊĠ Ġ@ Scenario State ( resolution Ġ= ĠNAME ) ĊĠ Ġvar Ġsum : ĠInt Ġ= Ġ 0 ĊĊĠ Ġfun Ġ` the Ġfirst Ġnumber Ġis Ġ$ `( n : ĠInt ) Ġ= Ġstep Ġ{ ĊĠĠĠ Ġthis . first Number Ġ= Ġn ĊĠ Ġ} ĊĊĠ Ġfun Ġ` the Ġsecond Ġnumber Ġis Ġ$ `( n : ĠInt ) Ġ= Ġstep Ġ{ ĊĠĠĠ Ġthis . second Number Ġ= Ġn ĊĠ Ġ} ĊĊĠ Ġfun Ġ` both Ġnumbers Ġare Ġadded `() Ġ= Ġstep Ġ{ ĊĠĠĠ Ġsum Ġ= Ġfirst Number Ġ+ Ġsecond Number ĊĠ Ġ} ĊĊĠ Ġfun Ġ` the Ġsum Ġis Ġ$ `( expected : ĠInt ) Ġ= Ġstep Ġ{ ĊĠĠĠ ĠassertEquals ( expected , Ġsum ) ĊĠ Ġ} Ċ Ċ } Ċ