package Ġru . t ink off . top . camunda . deleg ator . deleg ates . exec utors . intercept ors . output Ċ Ċ import Ġorg . camunda . bpm . engine . delegate . Delegate Execution Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . mockito . kotlin . any Ċ import Ġorg . mockito . kotlin . eq Ċ import Ġorg . mockito . kotlin . isNull Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . never Ċ import Ġorg . mockito . kotlin . verify Ċ import Ġru . t ink off . top . camunda . deleg ator . annotations . Cam unda Delegate Ċ import Ġru . t ink off . top . camunda . deleg ator . annotations . Delegate Execute Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . Delegate Information Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . Delegate Meta Information Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . exec utors . Delegate Executor Impl Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . exec utors . intercept ors . output . multiple . Multiple Result Execution Writer Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . exec utors . intercept ors . output . multiple . annot a ions . Multiple Results Ċ import Ġru . t ink off . top . camunda . deleg ator . deleg ates . exec utors . intercept ors . output . multiple . annot a ions . Result Variable Ċ import Ġkotlin . reflect . jvm . java Method Ċ Ċ class ĠMultiple Result Execution Writer Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġexecution Ġ= Ġmock < Delegate Execution >() ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġdelegate Ġthrow Ġerror Ġthen Ġinterceptor Ġwrite Ġnull Ġresult Ġ& Ġre throw Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠDelegate Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Result Variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst : ĠString ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Cam unda Delegate ĊĠĠĠĠĠĠĠ Ġclass ĠTest Delegate Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Delegate Execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Multiple Results ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġtest (): ĠDelegate Result Ġ= Ġthrow ĠIllegalArgumentException ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdelegate Information Ġ= ĠDelegate Information ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Delegate (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDelegate Meta Information ( Test Delegate :: class . java , ĠTest Delegate :: test . java Method !! ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠMultiple Result Execution Writer (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . next Executor Ġ= ĠDelegate Executor Impl () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterceptor . execute ( execution , Ġdelegate Information , Ġempty Array ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( execution ). set Variable Local ( eq (" first "), Ġis Null ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġdelegate Ġreturn Ġvalue Ġthen Ġinterceptor Ġwrite Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠDelegate Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Result Variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst : ĠString , ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Result Variable (" custom Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Override : ĠInt , ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Result Variable ( is Local Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġglobal : ĠString , ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Result Variable (" global Custom Name ", Ġis Local Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġglobal Override : ĠBoolean ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Cam unda Delegate ĊĠĠĠĠĠĠĠ Ġclass ĠTest Delegate Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Delegate Execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Multiple Results ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ= ĠDelegate Result (" value ", Ġ 7 , Ġ" global ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdelegate Information Ġ= ĠDelegate Information ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Delegate (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDelegate Meta Information ( Test Delegate :: class . java , ĠTest Delegate :: test . java Method !! ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠMultiple Result Execution Writer (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . next Executor Ġ= ĠDelegate Executor Impl () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinterceptor . execute ( execution , Ġdelegate Information , Ġempty Array ()) ĊĊĠĠĠĠĠĠĠ Ġverify ( execution ). set Variable Local ( eq (" first "), Ġeq (" value ")) ĊĠĠĠĠĠĠĠ Ġverify ( execution ). set Variable Local ( eq (" custom Name "), Ġeq ( 7 )) ĊĠĠĠĠĠĠĠ Ġverify ( execution ). set Variable ( eq (" global "), Ġeq (" global ")) ĊĠĠĠĠĠĠĠ Ġverify ( execution ). set Variable ( eq (" global Custom Name "), Ġeq ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġdelegate Ġreturn Ġvalue Ġvoid Ġthen Ġinterceptor Ġnot Ġwrite Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Cam unda Delegate ĊĠĠĠĠĠĠĠ Ġclass ĠTest Delegate Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Delegate Execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Multiple Results ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ= ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdelegate Information Ġ= ĠDelegate Information ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Delegate (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDelegate Meta Information ( Test Delegate :: class . java , ĠTest Delegate :: test . java Method !! ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠMultiple Result Execution Writer (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . next Executor Ġ= ĠDelegate Executor Impl () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinterceptor . execute ( execution , Ġdelegate Information , Ġempty Array ()) ĊĊĠĠĠĠĠĠĠ Ġverify ( execution , Ġnever ()). set Variable Local ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġverify ( execution , Ġnever ()). set Variable ( any (), Ġany ()) ĊĠĠĠ Ġ} Ċ } Ċ