package Ġio . kot est . matchers . reflection Ċ Ċ import Ġio . kot est . matchers . Matcher Ċ import Ġio . kot est . matchers . Matcher Result Ċ import Ġio . kot est . matchers . should Ċ import Ġio . kot est . matchers . should Not Ċ import Ġkotlin . reflect . K Callable Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . K Visibility Ċ import Ġkotlin . reflect . full . is Sup ertype Of Ċ import Ġkotlin . reflect . full . star Project ed Type Ċ Ċ infix Ġfun ĠK Callable <* >. should Have Visibility ( visibility : ĠK Visibility ) Ġ= Ġthis Ġshould Ġhave Callable Visibility ( visibility ) Ċ infix Ġfun ĠK Callable <* >. should Not Have Visibility ( visibility : ĠK Visibility ) Ġ= Ġthis Ġshould Not Ġhave Callable Visibility ( visibility ) Ċ fun Ġhave Callable Visibility ( expected : ĠK Visibility ) Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġvalue . visibility Ġ== Ġexpected , ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġhave Ġvisibility Ġ${ expected . human Name () }" Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġhave Ġvisibility Ġ${ expected . human Name () }" ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. shouldBe Final () Ġ= Ġthis Ġshould Ġbe Final () Ċ fun ĠK Callable <* >. should Not Be Final () Ġ= Ġthis Ġshould Not Ġbe Final () Ċ fun Ġbe Final () Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġvalue . is Final , ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġbe Ġfinal " Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġbe Ġfinal " ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. shouldBe Open () Ġ= Ġthis Ġshould Ġbe Open () Ċ fun ĠK Callable <* >. should Not Be Open () Ġ= Ġthis Ġshould Not Ġbe Open () Ċ fun Ġbe Open () Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġvalue . isOpen , ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġbe Ġopen " Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġbe Ġopen " ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. shouldBe Abstract () Ġ= Ġthis Ġshould Ġbe Abstract () Ċ fun ĠK Callable <* >. should Not Be Abstract () Ġ= Ġthis Ġshould Not Ġbe Abstract () Ċ fun Ġbe Abstract () Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġvalue . is Abstract , ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġbe Ġabstract " Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġbe Ġabstract " ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. shouldBe Suspend able () Ġ= Ġthis Ġshould Ġbe Suspend able () Ċ fun ĠK Callable <* >. should Not Be Suspend able () Ġ= Ġthis Ġshould Not Ġbe Suspend able () Ċ fun Ġbe Suspend able () Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġvalue . is Suspend , ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġbe Ġsuspend able " Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġbe Ġsuspend able " ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. should Accept Parameters ( parameters : ĠList < K Class <* >>, Ġblock : Ġ( List < K Parameter >) Ġ-> ĠUnit ) Ġ{ ĊĠ Ġthis Ġshould Ġaccept Parameters OfType ( parameters ) ĊĠ Ġblock ( this . parameters ) Ċ } Ċ infix Ġfun ĠK Callable <* >. should Accept Parameters ( parameters : ĠList < K Class <* >>) Ġ= Ġthis Ġshould Ġaccept Parameters OfType ( parameters ) Ċ infix Ġfun ĠK Callable <* >. should Not Accept Parameters ( parameters : ĠList < K Class <* >>) Ġ= Ġthis Ġshould Not Ġaccept Parameters OfType ( parameters ) Ċ fun Ġaccept Parameters OfType ( parameters : ĠList < K Class <* >>) Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġprivate Ġfun Ġvalidate ( index : ĠInt , Ġacc : ĠBoolean , Ġparameter : ĠK Parameter ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġindex Ġ== Ġ 0 Ġ|| Ġacc Ġ&& Ġparameter . type . is Sup ertype Of ( parameters [ index Ġ- Ġ 1 ]. star Project ed Type ) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġparameters . size Ġ+ Ġ 1 Ġ== Ġvalue . parameters . size Ġ&& Ġvalue . parameters . fold Indexed ( true , Ġ:: validate ), ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġaccept Ġthese Ġparameters : Ġ${ parameters . join ToString (", Ġ") }" Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġaccept Ġthese Ġparameters : Ġ${ parameters . join ToString (", Ġ") }" ĊĠĠĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠK Callable <* >. should Have Parameters WithName ( parameters : ĠList < String >, Ġblock : Ġ( List < K Parameter >) Ġ-> ĠUnit ) Ġ{ ĊĠ Ġthis Ġshould Ġhave Parameters WithName ( parameters ) ĊĠ Ġblock ( this . parameters ) Ċ } Ċ infix Ġfun ĠK Callable <* >. should Have Parameters WithName ( parameters : ĠList < String >) Ġ= Ġthis Ġshould Ġhave Parameters WithName ( parameters ) Ċ infix Ġfun ĠK Callable <* >. should Not Have Parameters WithName ( parameters : ĠList < String >) Ġ= Ġthis Ġshould Not Ġhave Parameters WithName ( parameters ) Ċ fun Ġhave Parameters WithName ( parameters : ĠList < String >) Ġ= Ġobject Ġ: ĠMatcher < K Callable <* >> Ġ{ ĊĠĠ Ġprivate Ġfun Ġvalidate ( index : ĠInt , Ġacc : ĠBoolean , Ġparameter : ĠK Parameter ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġindex Ġ== Ġ 0 Ġ|| Ġacc Ġ&& Ġparameter . name Ġ== Ġparameters [ index Ġ- Ġ 1 ] ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġtest ( value : ĠK Callable <* >) Ġ= ĠMatcher Result ( ĊĠĠĠĠĠ Ġparameters . size Ġ+ Ġ 1 Ġ== Ġvalue . parameters . size Ġ&& Ġvalue . parameters . fold Indexed ( true , Ġ:: validate ), ĊĠĠĠĠĠ Ġ{ Ġ" Member Ġ$ value Ġshould Ġhave Ġthese Ġparameters Ġname : Ġ${ parameters . join ToString (", Ġ") }" Ġ}, ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" Member Ġ$ value Ġshould Ġnot Ġhave Ġthese Ġparameters Ġname : Ġ${ parameters . join ToString (", Ġ") }" ĊĠĠĠĠĠ Ġ}) Ċ } Ċ