package Ġme . ag aman . ram ona . api Ċ Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġme . ag aman . ram ona . user . User Ċ import Ġme . ag aman . ram ona . model .* Ċ import Ġme . ag aman . ram ona . storage . Stand up Responses Storage Ċ import Ġme . ag aman . ram ona . storage . Stand up Save Result Ċ import Ġme . ag aman . ram ona . storage . Stand up Storage Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ internal Ġclass ĠStand up Controller UnitTest Ġ{ ĊĠĠĠ Ġprivate Ġval Ġstand up Storage : ĠStand up Storage Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġstand up Responses Storage : ĠStand up Responses Storage Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĊĠĠĠ Ġprivate Ġval Ġcontroller Ġ= ĠStand up Controller ( ĊĠĠĠĠĠĠĠ Ġstand up Storage , ĊĠĠĠĠĠĠĠ Ġstand up Responses Storage ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` save Ġreturns Ġok Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Stand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġval Ġsaved Stand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . save ( request Stand up ) Ġ} Ġreturns ĠStand up Save Result . Stand up Save Result Ok ( saved Stand up ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . save ( Stand up Save Request ( request Stand up )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Save Response ( stand up Ġ= Ġsaved Stand up ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġstand up Storage . save ( request Stand up ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` save Ġreturns Ġduplicated Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Stand up : ĠStand up Ġ= Ġmock k Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġname Ġ} Ġreturns ĠST AND UP _ NAME ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . save ( request Stand up ) Ġ} Ġreturns ĠStand up Save Result . Stand up Save Result D uplicated Name ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . save ( Stand up Save Request ( request Stand up )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Save Response ( error Ġ= Ġ" An ĠStand up Ġalready Ġexists Ġwith Ġthe Ġname Ġ'$ STAND UP _ NAME ' "), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġreturns Ġstand up `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . get ( STAND UP _ ID ) Ġ} Ġreturns Ġstand up ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . get ( STAND UP _ ID ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up GetResponse ( stand up Ġ= Ġstand up ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġreturns Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . get ( STAND UP _ ID ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . get ( STAND UP _ ID ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up GetResponse ( error Ġ= Ġ" Stand up Ġnot Ġfound "), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . getAll () Ġ} Ġreturns ĠlistOf ( stand up ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . list () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up ListResponse ( listOf ( stand up )), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` public Get Ġreturns Ġstand up `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . getBy External Id ( STAND UP _ EXTERNAL _ ID ) Ġ} Ġreturns Ġstand up ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . public Get ( STAND UP _ EXTERNAL _ ID ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Public GetResponse ( stand up Ġ= Ġstand up ), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` public Get Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . getBy External Id ( STAND UP _ EXTERNAL _ ID ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . public Get ( STAND UP _ EXTERNAL _ ID ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Public GetResponse ( error Ġ= Ġ" Stand up Ġnot Ġfound "), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fill Ġdoesn 't Ġfinds Ġstand up `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . getBy External Id ( STAND UP _ EXTERNAL _ ID ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . fill ( Stand up Fill Request ( STAND UP _ EXTERNAL _ ID , ĠRESP ONSE S ), Ġmock k ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Fill Response ( error Ġ= Ġ" Stand up Ġnot Ġfound "), Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fill Ġsaves Ġresponses `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠcurrentUser : ĠUser Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġval Ġstand up : ĠStand up Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstand up Storage . getBy External Id ( STAND UP _ EXTERNAL _ ID ) Ġ} Ġreturns Ġstand up ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcontroller . fill ( Stand up Fill Request ( STAND UP _ EXTERNAL _ ID , ĠRESP ONSE S ), ĠcurrentUser ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Stand up Fill Response ( saved Ġ= Ġtrue ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġstand up Responses Storage . save ( stand up , ĠcurrentUser , ĠRESP ONSE S ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠST AND UP _ ID Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠST AND UP _ EXTERNAL _ ID Ġ= Ġ" any - external - id " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠST AND UP _ NAME Ġ= Ġ" any _ stand up _ name " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠRESP ONSE S Ġ= Ġmap Of ( 1 Ġto Ġ" any Ġresponse ") ĊĠĠĠ Ġ} Ċ } Ċ