1
0
Fork 0
spacetac/src/ui/battle/LogProcessor.spec.ts

74 lines
2.3 KiB
TypeScript
Raw Normal View History

/// <reference path="../TestGame.ts"/>
/// <reference path="../../core/events/BaseBattleEvent.ts"/>
2017-09-24 22:23:22 +00:00
module TK.SpaceTac.UI.Specs {
class FakeEvent extends BaseBattleEvent {
diff: number
constructor(diff = 1) {
super("fake");
this.diff = diff;
}
apply(battle: Battle) {
2017-10-25 22:45:53 +00:00
battle.cycle += this.diff;
}
getReverse(): BaseBattleEvent {
return new FakeEvent(-this.diff);
}
}
2017-10-26 21:47:13 +00:00
testing("LogProcessor", test => {
2017-10-29 21:08:55 +00:00
let testgame = setupBattleview(test);
2017-10-26 21:47:13 +00:00
test.case("steps forward and backward in time", check => {
2017-10-09 21:13:56 +00:00
let battle = testgame.view.battle;
battle.log.clear();
2017-10-09 21:13:56 +00:00
let processor = new LogProcessor(testgame.view);
processor.register(event => {
event.apply(battle);
return 0;
});
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 1);
check.equals(processor.atStart(), true);
check.equals(processor.atEnd(), true);
processor.stepForward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 1);
check.equals(processor.atStart(), true);
check.equals(processor.atEnd(), true);
battle.log.add(new FakeEvent());
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 1);
check.equals(processor.atStart(), true);
check.equals(processor.atEnd(), false);
processor.stepForward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 2);
check.equals(processor.atStart(), false);
check.equals(processor.atEnd(), true);
processor.stepForward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 2);
check.equals(processor.atStart(), false);
check.equals(processor.atEnd(), true);
processor.stepBackward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 1);
check.equals(processor.atStart(), true);
check.equals(processor.atEnd(), false);
processor.stepBackward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 1);
check.equals(processor.atStart(), true);
check.equals(processor.atEnd(), false);
processor.stepForward();
2017-10-26 21:47:13 +00:00
check.equals(battle.cycle, 2);
check.equals(processor.atStart(), false);
check.equals(processor.atEnd(), true);
})
})
}