public void beansFromTheParentContextArePositionedBeforeTheModuleBeans() {
GenericApplicationContext applicationContext = new GenericApplicationContext();
applicationContext.getBeanFactory().registerSingleton( "", new MyFixedBeanConfig() );
applicationContext.refresh();
AcrossContext context = new AcrossContext( applicationContext );
ModuleOne moduleOne = new ModuleOne();
moduleOne.addRuntimeDependency( "ModuleTwo" );
context.addModule( moduleOne );
ModuleTwo moduleTwo = new ModuleTwo();
moduleTwo.addRuntimeDependency( "ModuleThree" );
context.addModule( moduleTwo );
ModuleThree moduleThree = new ModuleThree();
context.addModule( moduleThree );
context.bootstrap();
AcrossContextBeanRegistry registry = AcrossContextUtils.getBeanRegistry( context );
List<MyBeanConfig> beans = registry.getBeansOfType( MyBeanConfig.class, true );
assertEquals( 4, beans.size() );
assertEquals( "ApplicationContext", beans.get( 0 ).getModule() );
assertEquals( "ModuleThree", beans.get( 1 ).getModule() );
assertEquals( "ModuleTwo", beans.get( 2 ).getModule() );
assertEquals( "ModuleOne", beans.get( 3 ).getModule() );
context.shutdown();
applicationContext.destroy();
}