package Ġcom . sk sam uel . kot est . specs . annotation Ċ Ċ import Ġio . kot est . core . spec . style . Annotation Spec Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . core . test . TestCase Ċ import Ġio . kot est . core . test . TestResult Ċ import Ġio . kot est . engine . concurrency . No op Coroutine Dispatcher Factory Ċ import Ġio . kot est . engine . listener . Test Engine Listener Ċ import Ġio . kot est . engine . spec . Spec Executor Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġkotlin . reflect . K Class Ċ Ċ private Ġvar Ġtests Ġ= Ġ 0 Ċ Ċ class ĠAnnotation Spec Test Detection Test Ġ: ĠFun Spec ({ ĊĊĠĠ Ġtest (" An Ġannotation Ġspec Ġshould Ġdetect Ġannotation Ġtests ") Ġ{ ĊĊĠĠĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠTest Engine Listener Ġ{ ĊĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġspec Finished ( k class : ĠK Class <* >, Ġresults : ĠMap < TestCase , ĠTest Result >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtests ĠshouldBe Ġ 2 ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġexecutor Ġ= ĠSpec Executor ( listener , ĠNo op Coroutine Dispatcher Factory ) ĊĠĠĠĠĠ Ġexecutor . execute ( Annotation Spec Class :: class ) ĊĠĠ Ġ} Ċ Ċ }) Ċ Ċ internal Ġclass ĠAnnotation Spec Class Ġ: ĠAnnotation Spec () Ġ{ ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġmy Test () Ġ{ ĊĠĠĠĠĠ Ġtests Ġ+= Ġ 1 ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġtest 2 () Ġ{ ĊĠĠĠĠĠ Ġtests Ġ+= Ġ 1 ĊĠĠ Ġ} Ċ Ċ } Ċ