package Ġio . kot est . core . extensions Ċ Ċ import Ġio . kot est . common . Soft Deprecated Ċ import Ġio . kot est . core . test . TestCase Ċ import Ġio . kot est . core . test . TestResult Ċ Ċ @ Soft Deprecated (" Rename d Ġto ĠTestCase Intercept Extension ") Ċ type alias ĠTestCase Extension Ġ= ĠTestCase Intercept Extension Ċ Ċ /** Ċ Ġ* ĠExtension Ġpoint Ġthat Ġintercept s Ġcalls Ġto Ġa Ġ[ TestCase ]. Ċ Ġ* Ċ Ġ* ĠThis Ġextension Ġcan Ġbe Ġused Ġto Ġoverride Ġthe Ġresults Ġof Ġa Ġtest , Ġor Ġwhether Ġa Ġtest Ġis Ġinvoked . Ċ Ġ* Ċ Ġ*/ Ċ interface ĠTestCase Intercept Extension Ġ: ĠExtension Ġ{ ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* ĠInter cept s Ġa Ġ[ TestCase ]. ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠAllows Ġimplementations Ġto Ġadd Ġlogic Ġaround Ġa Ġ[ TestCase ] Ġas Ġwell Ġas ĊĠĠĠ Ġ* Ġcontrol Ġif Ġ( or Ġwhen ) Ġthe Ġtest Ġis Ġexecuted . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠThe Ġsupplied Ġ` execute ` Ġfunction Ġshould Ġbe Ġinvoked Ġif Ġimplementations Ġwish Ġto ĊĠĠĠ Ġ* Ġexecute Ġthe Ġtest Ġcase . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠThis Ġfunction Ġrequires Ġthe Ġactual Ġtest Ġcase Ġinstance Ġthat Ġwill Ġbe Ġexecuted , ĊĠĠĠ Ġ* Ġwhich Ġis Ġnormally Ġthe Ġsame Ġinstance Ġsupplied , Ġbut Ġcan Ġin Ġfact Ġbe Ġanother . ĊĠĠĠ Ġ* ĠThis Ġallows Ġyou Ġto Ġchange Ġconfig Ġfor Ġexample : ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* Ġ` execute ( testCase . copy ( config Ġ= Ġ... )) ` ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠThe Ġexecute Ġfunction Ġaddition ally Ġexpects Ġa Ġcallback Ġfunction Ġwhich Ġwill Ġbe Ġinvoked ĊĠĠĠ Ġ* Ġwith Ġthe Ġ[ TestResult ] Ġafter Ġthe Ġtest Ġhas Ġcompleted . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠImplement ations Ġmust Ġinvoke Ġthe Ġ` complete ` Ġfunction Ġwith Ġa Ġ[ TestResult ] ĊĠĠĠ Ġ* Ġwhich Ġis Ġused Ġto Ġnotify Ġthe Ġunderlying Ġplatform Ġ( eg , Ġjunit 5 ) ĊĠĠĠ Ġ* Ġas Ġto Ġthe Ġoutcome Ġof Ġthe Ġtest . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠTypically Ġthe Ġresult Ġrec ieved Ġin Ġthe Ġcallback Ġwill Ġbe Ġthen Ġused Ġto Ġinvoke ĊĠĠĠ Ġ* Ġthe Ġcomplete Ġfunction Ġbut Ġthis Ġis Ġnot Ġrequired . ĠImplement ations Ġmay Ġwish Ġto ĊĠĠĠ Ġ* Ġskip Ġor Ġabort Ġthe Ġtest Ġcase Ġand Ġinvoke Ġcomplete Ġwithout Ġever Ġrunning Ġthe Ġtest . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠOr Ġthey Ġmay Ġwish Ġto Ġrun Ġthe Ġtest Ġand Ġthen Ġinvoke Ġcomplete Ġwith Ġa Ġdifferent ĊĠĠĠ Ġ* Ġresult Ġto Ġthat Ġreceived . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠNote : Ġ!! Failure Ġto Ġinvoke Ġthe Ġcomplete Ġfunction Ġcan Ġresult Ġin Ġthe Ġtest Ġrun n ner ĊĠĠĠ Ġ* Ġwaiting Ġin def initely Ġfor Ġthe Ġoutcome Ġof Ġthe Ġtest Ġcase !! ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* ĠNote : ĠA Ġtest Ġcannot Ġbe Ġskipped Ġafter Ġit Ġhas Ġbeen Ġexecuted . ĠExec uting Ġa Ġtest ĊĠĠĠ Ġ* Ġand Ġthen Ġreturning Ġ[ Test Status . Ignored ] Ġcan Ġresult Ġin Ġerrors Ġon Ġsome Ġplatforms . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* Ġ@ param ĠtestCase Ġthe Ġ[ TestCase ] Ġunder Ġinter ception Ġ- Ġcontains Ġthe Ġ[ Spec ] ĊĠĠĠ Ġ* Ġinstance Ġcontaining Ġthis Ġtest Ġcase , Ġthe Ġ[ TestCase Config ] Ġto Ġbe Ġpassed Ġto Ġthe Ġtest ĊĠĠĠ Ġ* Ġand Ġa Ġ[ Description ] Ġwhich Ġcontains Ġthe Ġid Ġand Ġparent Ġids Ġof Ġthe Ġtest Ġcase . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* Ġ@ param Ġexecute Ġa Ġfunction Ġthat Ġis Ġinvoked Ġto Ġexecute Ġthe Ġtest . ĠCan Ġbe Ġignored Ġif Ġyou ĊĠĠĠ Ġ* Ġwish Ġto Ġreturn Ġa Ġresult Ġwithout Ġexecuting Ġthe Ġtest Ġitself . ĊĠĠĠ Ġ* ĊĠĠĠ Ġ* Ġ@ param Ġexecute Ġa Ġfunction Ġthat Ġmust Ġbe Ġinvoked Ġwith Ġa Ġ[ TestResult ] Ġto ĊĠĠĠ Ġ* Ġnotify Ġthe Ġtest Ġrunner Ġof Ġthe Ġoutcome Ġof Ġthe Ġtest . ĊĠĠĠ Ġ*/ ĊĠĠ Ġsuspend Ġfun Ġintercept ( ĊĠĠĠĠĠ ĠtestCase : ĠTestCase , ĊĠĠĠĠĠ Ġexecute : Ġsuspend Ġ( TestCase ) Ġ-> ĠTest Result ĊĠĠ Ġ): ĠTest Result Ċ } Ċ