package Ġco . zs mb . k oin js . test . core Ċ Ċ import Ġco . zs mb . k oin js . core . scope . Scope Ċ import Ġco . zs mb . k oin js . dsl . module . application Context Ċ import Ġco . zs mb . k oin js . standalone . Stand Al one Context . start K oin Ċ import Ġco . zs mb . k oin js . standalone . get Ċ import Ġco . zs mb . k oin js . test . Auto Close K oin Test Ċ import Ġco . zs mb . k oin js . test . ext . junit . assert Contexts Ċ import Ġco . zs mb . k oin js . test . ext . junit . assert Definitions Ċ import Ġco . zs mb . k oin js . test . ext . junit . assert Remaining Instances Ċ import Ġco . zs mb . k oin js . test . ext . junit . assert Scope Parent Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . fail Ċ Ċ class ĠScope Context Test Ġ: ĠAuto Close K oin Test () Ġ{ ĊĊĠĠĠ Ġval ĠFlat Contexts Module Ġ= Ġapplication Context Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" B ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent A () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean (" B _ B ") Ġ{ ĠComponent B ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" C ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent A () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean (" B _ C ") Ġ{ ĠComponent B ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠH ierarchy Contexts Module Ġ= Ġapplication Context Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" A ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent A () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" B ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent B ( get ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" C ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent C ( get ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" A _ 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent A () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġbad Visibility Ġ= Ġapplication Context Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ( name Ġ= Ġ" A ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent A () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbean Ġ{ ĠComponent B ( get ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠComponent A ĊĠĠĠ Ġclass ĠComponent B ( val Ġcomponent A : ĠComponent A ) ĊĠĠĠ Ġclass ĠComponent C ( val Ġcomponent A : ĠComponent A ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas _ flat _ visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin ( listOf ( Flat Contexts Module )) ĊĊĠĠĠĠĠĠĠ Ġassert Contexts ( 3 ) ĊĠĠĠĠĠĠĠ Ġassert Definitions ( 4 ) ĊĊĠĠĠĠĠĠĠ Ġassert Scope Parent (" B ", ĠScope . ROOT ) ĊĠĠĠĠĠĠĠ Ġassert Scope Parent (" C ", ĠScope . ROOT ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( get < Component B >(" B _ B ")) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( get < Component B >(" B _ C ")) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget < Component A >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget < Component B >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ierarch ial _ visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin ( listOf ( Hierarchy Contexts Module )) ĊĊĠĠĠĠĠĠĠ Ġassert Contexts ( 5 ) ĊĠĠĠĠĠĠĠ Ġassert Definitions ( 4 ) ĊĊĠĠĠĠĠĠĠ Ġassert Scope Parent (" A ", ĠScope . ROOT ) ĊĠĠĠĠĠĠĠ Ġassert Scope Parent (" B ", Ġ" A ") ĊĠĠĠĠĠĠĠ Ġassert Scope Parent (" C ", Ġ" B ") ĊĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġget < Component C >() ĊĠĠĠĠĠĠĠ ĠassertNotNull ( c ) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġget < Component B >() ĊĠĠĠĠĠĠĠ ĠassertNotNull ( b ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( b . component A , Ġc . component A ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget < Component A >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbad _ visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin ( listOf ( bad Visibility )) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget < Component B >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Remaining Instances ( 0 ) ĊĠĠĠ Ġ} Ċ Ċ }