2017-02-09 00:00:35 +00:00
|
|
|
module TS.SpaceTac.Specs {
|
2017-02-09 00:26:04 +00:00
|
|
|
describe("GameSession", () => {
|
2017-02-16 22:59:41 +00:00
|
|
|
/**
|
|
|
|
* Compare two sessions
|
|
|
|
*/
|
|
|
|
function compare(session1: GameSession, session2: GameSession) {
|
|
|
|
expect(session1).toEqual(session2);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Apply deterministic game steps
|
|
|
|
*/
|
|
|
|
function applyGameSteps(session: GameSession): void {
|
|
|
|
var battle = session.getBattle();
|
|
|
|
battle.advanceToNextShip();
|
|
|
|
// TODO Make some fixed moves (AI?)
|
|
|
|
battle.endBattle(battle.fleets[0]);
|
|
|
|
}
|
|
|
|
|
2015-04-07 00:00:00 +00:00
|
|
|
it("serializes to a string", () => {
|
|
|
|
var session = new GameSession();
|
2017-02-16 22:59:41 +00:00
|
|
|
session.startQuickBattle();
|
2015-04-07 00:00:00 +00:00
|
|
|
|
|
|
|
// Dump and reload
|
|
|
|
var dumped = session.saveToString();
|
|
|
|
var loaded_session = GameSession.loadFromString(dumped);
|
|
|
|
|
|
|
|
// Check equality
|
2017-02-16 22:59:41 +00:00
|
|
|
compare(loaded_session, session);
|
2015-04-07 00:00:00 +00:00
|
|
|
|
|
|
|
// Apply game steps
|
|
|
|
applyGameSteps(session);
|
|
|
|
applyGameSteps(loaded_session);
|
|
|
|
|
|
|
|
// Check equality after game steps
|
2017-02-16 22:59:41 +00:00
|
|
|
compare(loaded_session, session);
|
2015-04-07 00:00:00 +00:00
|
|
|
});
|
2017-02-09 00:26:04 +00:00
|
|
|
});
|
2015-04-07 00:00:00 +00:00
|
|
|
}
|