UNPKG

1.51 kBtext/coffeescriptView Raw
1expect = require('chai').expect
2
3ClassMap = require('class_map')
4TestSingleton2 = require('./test_singleton')
5
6class TestSingleton
7 @scope: 'SINGLETON'
8 name: 'Test Singleton'
9
10
11describe '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