package Ġorg . rew ed ig ital . kat ana Ċ Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . rew ed ig ital . kat ana . dsl . factory Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . specification . describe Ċ Ċ object ĠComponent Builder Tests Ġ: ĠSpe k ( ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġdescribe (" Component ĠBuilder ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġbuild Ġcomponent Ġwith Ġadd Ġfunctions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule 1 Ġ= ĠModule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory (" TEST ") Ġ{ Ġ" Hello " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent 1 Ġ= ĠComponent ( module 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule 2 Ġ= ĠModule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory (" TEST 2 ") Ġ{ Ġ" World " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent 2 Ġ= ĠComponent . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Module ( module 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Dep ends On ( component 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST ") Ġshould Equal Ġ" Hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST 2 ") Ġshould Equal Ġ" World " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġbuild Ġcomponent Ġwith Ġset Ġfunctions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule 1 Ġ= ĠModule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory (" TEST ") Ġ{ Ġ" Hello " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent 1 Ġ= ĠComponent ( module 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule 2 Ġ= ĠModule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfactory (" TEST 2 ") Ġ{ Ġ" World " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcomponent 2 Ġ= ĠComponent . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Modules ( module 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dep ends On ( component 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST ") Ġshould Equal Ġ" Hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST 2 ") Ġshould Equal Ġ" World " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 Ġ= ĠComponent . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Modules ( listOf ( module 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dep ends On ( listOf ( component 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST ") Ġshould Equal Ġ" Hello " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent 2 . inject Now < String >(" TEST 2 ") Ġshould Equal Ġ" World " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ