1 | expect = require('chai').expect
|
2 |
|
3 | ClassMap = require('class_map')
|
4 | TestSingleton2 = require('./test_singleton')
|
5 |
|
6 | class TestSingleton
|
7 | @scope: 'SINGLETON'
|
8 | name: 'Test Singleton'
|
9 |
|
10 |
|
11 | describe 'Class Map', ->
|
12 | it 'should get and set a class', ->
|
13 | cm = new ClassMap()
|
14 | ts1 = new TestSingleton()
|
15 | ts2 = new TestSingleton2()
|
16 |
|
17 | expect(cm.get(TestSingleton)).to.not.exist
|
18 | expect(cm.get(TestSingleton2)).to.not.exist
|
19 |
|
20 | cm.set(TestSingleton, ts1)
|
21 | cm.set(TestSingleton2, ts2)
|
22 |
|
23 | expect(cm.get(TestSingleton)).to.equal ts1
|
24 | expect(cm.get(TestSingleton2)).to.equal ts2
|
25 |
|
26 | it 'should over-write a vlue', ->
|
27 | cm = new ClassMap()
|
28 | ts1 = new TestSingleton()
|
29 | ts2 = new TestSingleton()
|
30 |
|
31 | cm.set(TestSingleton, ts1)
|
32 | expect(cm.get(TestSingleton)).to.equal ts1
|
33 | cm.set(TestSingleton, ts2)
|
34 | expect(cm.get(TestSingleton)).to.equal ts2
|
35 |
|
36 | it 'should not conflict with another ClassMap', ->
|
37 | class ClassA
|
38 | name: 'class a'
|
39 |
|
40 | class ClassB
|
41 | name: 'class b'
|
42 |
|
43 | cm1 = new ClassMap()
|
44 | cm2 = new ClassMap()
|
45 | a = new ClassA()
|
46 | b = new ClassB()
|
47 |
|
48 | cm1.set(ClassA, a)
|
49 | cm1.set(ClassB, b)
|
50 |
|
51 | expect(cm1.get(ClassA)).to.equal a
|
52 | expect(cm1.get(ClassB)).to.equal b
|
53 | expect(cm2.get(ClassA)).to.not.exist
|
54 | expect(cm2.get(ClassB)).to.not.expect
|
55 |
|
56 | cm2.set(ClassB, b)
|
57 | cm2.set(ClassA, a)
|
58 | expect(cm1.get(ClassA)).to.equal a
|
59 | expect(cm1.get(ClassB)).to.equal b
|
60 | expect(cm2.get(ClassA)).to.equal a
|
61 | expect(cm2.get(ClassB)).to.equal b
|