-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
137 lines (111 loc) · 3.81 KB
/
test.js
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
var Startup = require('./startup');
var Employee = require('./employee');
var Game = require('./game');
var GameEntity = require('./centity');
const Lab = require('lab');
const lab = exports.lab = Lab.script();
//describe('Startup#Init', () => {
lab.test('Should create an empty startup', () => {
return new Promise((res, rej) => {
let st = new Startup("Josnei");
Lab.expect(st.name).to.equal("Josnei");
Lab.expect(st.money).to.equal(0);
res();
});
});
//});
lab.test("Check if the game adds entities correctly", () => {
return new Promise((res, rej) => {
let g = new Game({});
let en1 = new GameEntity("Entity1");
g.addEntity("en1", en1);
let en1got = g.getEntity("en1");
Lab.expect(en1).to.equal(en1got);
res();
});
});
lab.test("Check if the game removes entities correctly", () => {
return new Promise((res, rej) => {
let g = new Game({});
let en1 = new GameEntity("Entity1");
g.addEntity("en1", en1);
let en1got = g.getEntity("en1");
Lab.expect(en1).to.equal(en1got);
g.removeEntity("en1");
en1got = g.getEntity("en1");
Lab.expect(en1got).to.equal(null);
res();
});
});
//describe('Game#checkonAdd', () => {
lab.test("Should check that the game run 'onAdd' through all entities", () => {
return new Promise((res, rej) => {
let entitiesAdd = [false, false, false];
let g = new Game({});
let en1 = new GameEntity("Entity1");
en1.onAdd = () => entitiesAdd[0] = true;
let en2 = new GameEntity("Entity2");
en2.onAdd = () => entitiesAdd[1] = true;
let en3 = new GameEntity("Entity3");
en3.onAdd = () => entitiesAdd[2] = true;
g.addEntity('en1', en1);
g.addEntity('en2', en2);
g.addEntity('en3', en3);
Lab.expect(entitiesAdd[0]).to.equal(true);// "en1 was not iterated");
Lab.expect(entitiesAdd[1]).to.equal(true);// "en2 was not iterated");
Lab.expect(entitiesAdd[2]).to.equal(true);// "en3 was not iterated");
res();
});
});
//});
//describe('Employer#checkMessage', () => {
lab.test("Check validity of the message generated", () => {
return new Promise((res, rej) => {
let st = new Startup("Manos", 100000);
st.addEmployee(new Employee("John", 22, 100, 'programmer', 'male'));
st.addEmployee(new Employee("Matt", 18, 90, 'programmer', 'male'));
st.addEmployee(new Employee("Claire", 20, 140, 'programmer', 'female'));
let msg = st._getMessage();;
Lab.expect(msg.men_workers).to.equal(2);// 'Wrong # of men workers');
Lab.expect(msg.women_workers).to.equal(1);// 'Wrong # of women workers');
Lab.expect(msg.avg_experience).to.equal(110);// 'Wrong # of avg experience');
Lab.expect(msg.avg_age).to.equal(20);// 'Wrong # of avg age');
res();
});
});
//});
//describe('Employee#checkXPGainBare', () => {
lab.test('Checks if employee have a small xp gain through a year inside an enterprise',
() => {
return new Promise((res, rej) => {
let emp = new Employee('The man', 20, 0, 'chief', 'male');
for (let i = 0; i < 12; i++) {
emp.iterate({});
}
Lab.expect(emp.xp).to.equal(12);// "Incorrect XP gain");
res();
});
});
//});
//describe('Game#Iterations', () => {
lab.test('Should check that the game iterated through all entities', () => {
return new Promise((res, rej) => {
let entitiesActive = [false, false, false];
let g = new Game({});
let en1 = new GameEntity("Entity1");
en1.iterate = () => entitiesActive[0] = true;
let en2 = new GameEntity("Entity2");
en2.iterate = () => entitiesActive[1] = true;
let en3 = new GameEntity("Entity3");
en3.iterate = () => entitiesActive[2] = true;
g.addEntity('en1', en1);
g.addEntity('en2', en2);
g.addEntity('en3', en3);
g.iterateAll();
Lab.expect(entitiesActive[0]).to.equal(true);// "en1 was not iterated");
Lab.expect(entitiesActive[1]).to.equal(true);// "en2 was not iterated");
Lab.expect(entitiesActive[2]).to.equal(true);// "en3 was not iterated");
res();
});
});
//});