package Ġorg . k oin . core Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . k oin . dsl . k oin Application Ċ import Ġorg . k oin . dsl . module Ċ import Ġjava . util .* Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNot Equals Ċ Ċ class ĠDeclare Instance JVM Test Ġ{ ĊĊĠĠĠ Ġclass ĠMy Scope ĊĊĠĠĠ Ġclass ĠMy Scoped Data ( var Ġname : ĠString ) ĊĊĠĠĠ Ġprivate Ġval Ġmodule Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġscope < My Scope > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscoped Ġ{ ĠMy Scoped Data ("") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġresolve Ġdifferent Ġscoped Ġdeclared Ġdefinitions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk oin : ĠK oin Ġ= Ġk oin Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( module ) ĊĠĠĠĠĠĠĠ Ġ}. k oin ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġtwo Ġscopes ĊĠĠĠĠĠĠĠ Ġval Ġscope A Ġ= Ġk oin . create Scope < My Scope >( UUID . randomUUID (). toString (), ĠMy Scope ()) ĊĠĠĠĠĠĠĠ Ġval Ġscope B Ġ= Ġk oin . create Scope < My Scope >( UUID . randomUUID (). toString (), ĠMy Scope ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDeclare Ġscope Ġdata Ġon Ġeach Ġscope ĊĠĠĠĠĠĠĠ Ġval Ġvalue _ A Ġ= Ġ" A " ĊĠĠĠĠĠĠĠ Ġscope A . declare ( My Scoped Data ( value _ A )) ĊĠĠĠĠĠĠĠ Ġval Ġvalue _ B Ġ= Ġ" B " ĊĠĠĠĠĠĠĠ Ġscope B . declare ( My Scoped Data ( value _ B )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġscope Ġof Ġeach Ġdata ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( scope A . get < My Scoped Data >(). name , Ġscope B . get < My Scoped Data >(). name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġresolve Ġroot Ġdeclared Ġdefinitions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk oin : ĠK oin Ġ= Ġk oin Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( module ) ĊĠĠĠĠĠĠĠ Ġ}. k oin ĊĊĠĠĠĠĠĠĠ Ġ// ĠDeclare Ġscope Ġdata Ġon Ġeach Ġscope ĊĠĠĠĠĠĠĠ Ġval Ġvalue _ A Ġ= Ġ" A " ĊĠĠĠĠĠĠĠ Ġk oin . declare ( My Scoped Data ( value _ A )) ĊĠĠĠĠĠĠĠ Ġval Ġvalue _ B Ġ= Ġ" B " ĊĠĠĠĠĠĠĠ Ġk oin . declare ( My Scoped Data ( value _ B )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġscope Ġof Ġeach Ġdata ĊĠĠĠĠĠĠĠ ĠassertEquals ( k oin . get < My Scoped Data >(). name , Ġk oin . get < My Scoped Data >(). name ) ĊĠĠĠ Ġ} Ċ }