program-manager.spec.ts
2.65 KB
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
import DummyProgramRepository from './dummy-program-repository';
import ProgramManager from '../src/program-manager';
import Util from '../src/util';
describe('Program Manager', () => {
let programManager = new ProgramManager();
it('should find respective program item, according to given time', () => {
let nowInMinutes1 = Util.convertToMinutes("00:00");
let nowInMinutes2 = Util.convertToMinutes("03:23");
let nowInMinutes3 = Util.convertToMinutes("23:29");
let schedule = {
"23:30" : "item-4" ,
"07:20" : "item-2" ,
"16:47" : "item-3" ,
"03:22" : "item-1" ,
"00:00" : "item-0"
};
expect(programManager.findCurrentProgramItem(schedule, nowInMinutes1)).toEqual("item-0");
expect(programManager.findCurrentProgramItem(schedule, nowInMinutes2)).toEqual("item-1");
expect(programManager.findCurrentProgramItem(schedule, nowInMinutes3)).toEqual("item-3");
});
});
describe('Program Segment', () => {
let programManager = new ProgramManager();
let dummyProgramRepository = new DummyProgramRepository();
beforeEach(() => {
let schedule = {};
schedule['2016-12-24'] = 'xmas-program-segment';
schedule[Util.getISODate()] = 'program-segment-of-today';
spyOn(dummyProgramRepository, "findByType").and.callFake(() => {
return new Promise<any> ((resolve, reject) => {
resolve([{
_id : 'test-program-1' ,
type : "program" ,
default : "xmas-program-segment" ,
schedule : schedule
}]);
});
});
spyOn(dummyProgramRepository, "findById").and.callFake(() => {
return new Promise<any> ((resolve, reject) => {
resolve({
_id : 'program-segment-of-today' ,
type : 'program_segment'
});
});
});
programManager.programRepository = dummyProgramRepository;
});
it('retrieve program segment for today', (done) => {
programManager.findCurrentProgramSegment()
.then(programSegment => {
expect(dummyProgramRepository.findById).toHaveBeenCalled();
expect(dummyProgramRepository.findByType).toHaveBeenCalled();
expect(programSegment._id).toEqual('program-segment-of-today');
expect(programSegment.type).toEqual('program_segment');
done();
});
}, 5000);
});