UNPKG

simple-ioc

Version:

Simple Inversion of Control for node.js

44 lines 1.58 kB
var assert = require( 'assert' ); describe( 'lib/ioc', function() { var container; before( function() { container = require( '../../lib/ioc.js' )() .getContainer(); } ); describe( 'container.resolveAllAndInject( fn )', function() { it( 'Should resolve all singletons and inject a function', function( callback ) { var resolvedComponents = [ false, false, false, false, false, false, false ], notResolved = false; container .registerInjectable( 'component0', function( pub ) { resolvedComponents[ 0 ] = true; } ) .registerInjectable( 'component1', function( pub, component0 ) { resolvedComponents[ 1 ] = true; } ) .registerInjectable( 'component2', function( pub, component1 ) { resolvedComponents[ 2 ] = true; } ) .registerInjectable( 'component3', function( pub, component2, component1 ) { resolvedComponents[ 3 ] = true; } ) .registerInjectable( 'component4', function( pub, component3 ) { resolvedComponents[ 4 ] = true; } ) .registerInjectable( 'component5', function( pub, component2 ) { resolvedComponents[ 5 ] = true; } ) .registerInjectable( 'component6', function( pub, component4, component1 ) { resolvedComponents[ 6 ] = true; } ) .registerInjectable( 'component7', function( pub, component4, component1, parentName ) { notResolved = true; } ) .resolveAllAndInject( function() { assert.ok( !resolvedComponents.some( function( item ) { return !item; } ) ); assert.ok( !notResolved ); callback(); } ); } ); } ); } );