package Ġnet . app tr onic . core . commons . dat apro vider Ċ Ċ import Ġnet . app tr onic . core . Base Context Test Ċ import Ġnet . app tr onic . core . context . Context Ċ import Ġnet . app tr onic . core . context . child Context Ċ import Ġnet . app tr onic . core . context . dependency Module Ċ import Ġnet . app tr onic . core . context . terminate Ċ import Ġnet . app tr onic . core . entity . Entity Ċ import Ġnet . app tr onic . core . entity . commons . value Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠSingle DataProvider Test Ġ: ĠBase Context Test () Ġ{ ĊĊĠĠĠ Ġval Ġdescriptor Ġ= Ġdata Provider Descriptor < Unit , ĠString >() ĊĊĠĠĠ Ġvar Ġinitialized Count Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġterminated Count Ġ= Ġ 0 ĊĊĠĠĠ Ġinner Ġclass ĠData Provider Impl ( context : ĠContext ) Ġ: ĠData Provider < Unit , ĠString >( context , ĠUnit ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdata Provider Entity : ĠEntity < String > Ġ= Ġvalue (" Data !") ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialized Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo On Terminate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterminated Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( init OnLoad : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . dependency Module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsingle DataProvider ( descriptor , Ġinit OnLoad Ġ= Ġinit OnLoad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Provider Impl ( scoped Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Single Initial izes () Ġ{ ĊĠĠĠĠĠĠĠ Ġload ( false ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġinitialized Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġterminated Count ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġchild Context () ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġchild . inject Data ( descriptor ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Data !", Ġdata . get ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġinitialized Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġterminated Count ) ĊĊĠĠĠĠĠĠĠ Ġchild . terminate () ĊĠĠĠĠĠĠĠ Ġ// Ġsingle Ġnot Ġdest o ys Ġwhen Ġclient Ġcontext Ġdestroyed ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġinitialized Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġterminated Count ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Init OnLoad And Re Init () Ġ{ ĊĠĠĠĠĠĠĠ Ġload ( true ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġinitialized Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġterminated Count ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdispatcher Ġ= Ġinject Data Dispatcher ( descriptor ) ĊĠĠĠĠĠĠĠ Ġdispatcher . reset Data ( Only Data ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġinitialized Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġterminated Count ) ĊĠĠĠ Ġ} Ċ Ċ }