forked from framework-one/di1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
singletonPattern.cfc
39 lines (33 loc) · 1.54 KB
/
singletonPattern.cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
component extends="mxunit.framework.TestCase" {
function setup() {
/**
* Note that although 'BeerFactory' and 'BarService' match the singletonpattern
* they are considered transients as in the beans folder
**/
transients = ['BarService','Beer','BeerFactory','Wine','Coffee','Tea','Burger','Pizza'];
singletons = ['DrinksService','FoodFactory'];
variables.factory = new ioc( "/tests/singletonPattern", { singletonPattern = ".+(Service|Factory)$" } );
}
function checkForSingletons( required beanname ) dataprovider="singletons" {
assertTrue( variables.factory.containsBean( arguments.beanname ) );
assertTrue( variables.factory.isSingleton( arguments.beanname ) );
instanceA = variables.factory.getBean( arguments.beanname );
instanceB = variables.factory.getBean( arguments.beanname );
assertSame( instanceA, instanceB );
}
function checkForTransients( beanname ) dataprovider="transients" {
//assertTrue( variables.factory.containsBean( beanname ) );
assertFalse( variables.factory.isSingleton( beanname ) );
instanceA = variables.factory.getBean( arguments.beanname );
instanceB = variables.factory.getBean( arguments.beanname );
assertNotSame( instanceA, instanceB );
}
function checkPatternsAreExclusive() {
try {
var bad = new ioc( '', { singletonPattern = '', transientPattern = '' } );
fail( 'Both arguments were allowed' );
} catch ( any e ) {
assertEquals( 'singletonPattern and transientPattern are mutually exclusive', e.message );
}
}
}