2017-05-30 16:24:55 +00:00
|
|
|
/// <reference path="../TestGame.ts"/>
|
|
|
|
/// <reference path="../../core/events/BaseBattleEvent.ts"/>
|
|
|
|
|
2017-09-24 22:23:22 +00:00
|
|
|
module TK.SpaceTac.UI.Specs {
|
2017-05-30 16:24:55 +00:00
|
|
|
class FakeEvent extends BaseBattleEvent {
|
|
|
|
diff: number
|
|
|
|
|
|
|
|
constructor(diff = 1) {
|
|
|
|
super("fake");
|
|
|
|
|
|
|
|
this.diff = diff;
|
|
|
|
}
|
|
|
|
|
|
|
|
apply(battle: Battle) {
|
|
|
|
battle.turn += this.diff;
|
|
|
|
}
|
|
|
|
|
|
|
|
getReverse(): BaseBattleEvent {
|
|
|
|
return new FakeEvent(-this.diff);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
describe("LogProcessor", function () {
|
|
|
|
let testgame = setupBattleview();
|
|
|
|
|
|
|
|
it("steps forward and backward in time", function () {
|
2017-10-09 21:13:56 +00:00
|
|
|
let battle = testgame.view.battle;
|
2017-05-30 16:24:55 +00:00
|
|
|
battle.log.clear();
|
2017-10-09 21:13:56 +00:00
|
|
|
let processor = new LogProcessor(testgame.view);
|
2017-05-30 16:24:55 +00:00
|
|
|
processor.register(event => {
|
|
|
|
event.apply(battle);
|
|
|
|
return 0;
|
|
|
|
});
|
|
|
|
expect(battle.turn).toBe(1);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(true);
|
|
|
|
expect(processor.atEnd()).toBe(true);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepForward();
|
|
|
|
expect(battle.turn).toBe(1);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(true);
|
|
|
|
expect(processor.atEnd()).toBe(true);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
battle.log.add(new FakeEvent());
|
|
|
|
expect(battle.turn).toBe(1);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(true);
|
|
|
|
expect(processor.atEnd()).toBe(false);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepForward();
|
|
|
|
expect(battle.turn).toBe(2);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(false);
|
|
|
|
expect(processor.atEnd()).toBe(true);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepForward();
|
|
|
|
expect(battle.turn).toBe(2);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(false);
|
|
|
|
expect(processor.atEnd()).toBe(true);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepBackward();
|
|
|
|
expect(battle.turn).toBe(1);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(true);
|
|
|
|
expect(processor.atEnd()).toBe(false);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepBackward();
|
|
|
|
expect(battle.turn).toBe(1);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(true);
|
|
|
|
expect(processor.atEnd()).toBe(false);
|
2017-05-30 16:24:55 +00:00
|
|
|
|
|
|
|
processor.stepForward();
|
|
|
|
expect(battle.turn).toBe(2);
|
2017-05-30 18:23:35 +00:00
|
|
|
expect(processor.atStart()).toBe(false);
|
|
|
|
expect(processor.atEnd()).toBe(true);
|
2017-05-30 16:24:55 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|