2017-09-24 22:23:22 +00:00
|
|
|
module TK.SpaceTac.Specs {
|
2017-10-26 21:47:13 +00:00
|
|
|
testing("Mission", test => {
|
|
|
|
test.case("check step status", check => {
|
2017-06-27 15:42:28 +00:00
|
|
|
let universe = new Universe();
|
|
|
|
let fleet = new Fleet();
|
2017-06-29 17:25:38 +00:00
|
|
|
let mission = new Mission(universe, fleet);
|
|
|
|
mission.addPart(new MissionPart(mission, "Part 1"));
|
|
|
|
mission.addPart(new MissionPart(mission, "Part 2"));
|
2017-06-27 15:42:28 +00:00
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
check.same(mission.current_part, mission.parts[0]);
|
2017-06-27 15:42:28 +00:00
|
|
|
|
2017-06-29 17:25:38 +00:00
|
|
|
let result = mission.checkStatus();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(result, true);
|
|
|
|
check.same(mission.current_part, mission.parts[0]);
|
2017-06-27 15:42:28 +00:00
|
|
|
|
|
|
|
spyOn(mission.parts[0], "checkCompleted").and.returnValues(false, true);
|
|
|
|
|
2017-06-29 17:25:38 +00:00
|
|
|
result = mission.checkStatus();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(result, true);
|
|
|
|
check.same(mission.current_part, mission.parts[0]);
|
2017-06-29 17:25:38 +00:00
|
|
|
result = mission.checkStatus();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(result, true);
|
|
|
|
check.same(mission.current_part, mission.parts[1]);
|
2017-06-29 17:25:38 +00:00
|
|
|
result = mission.checkStatus();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(result, true);
|
|
|
|
check.same(mission.current_part, mission.parts[1]);
|
2017-06-27 15:42:28 +00:00
|
|
|
|
|
|
|
spyOn(mission.parts[1], "checkCompleted").and.returnValue(true);
|
|
|
|
|
2017-06-29 17:25:38 +00:00
|
|
|
result = mission.checkStatus();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(result, false);
|
|
|
|
check.same(mission.current_part, mission.parts[1]);
|
2017-06-27 15:42:28 +00:00
|
|
|
})
|
2017-07-10 22:50:38 +00:00
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("stores a reward", check => {
|
2017-07-10 22:50:38 +00:00
|
|
|
let mission = new Mission(new Universe());
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(mission.getRewardText(), "-");
|
2017-07-10 22:50:38 +00:00
|
|
|
|
|
|
|
mission.reward = 720;
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(mission.getRewardText(), "720 zotys");
|
2017-07-10 22:50:38 +00:00
|
|
|
|
|
|
|
mission.reward = new Equipment();
|
|
|
|
mission.reward.name = "Super Equipment";
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(mission.getRewardText(), "Super Equipment Mk1");
|
2017-07-10 22:50:38 +00:00
|
|
|
})
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("gives the reward on completion", check => {
|
2017-07-10 22:50:38 +00:00
|
|
|
let fleet = new Fleet();
|
|
|
|
let ship = fleet.addShip();
|
|
|
|
ship.cargo_space = 5;
|
|
|
|
fleet.credits = 150;
|
|
|
|
|
|
|
|
let mission = new Mission(new Universe(), fleet);
|
|
|
|
mission.reward = 75;
|
|
|
|
mission.setCompleted();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(mission.completed, true);
|
|
|
|
check.equals(fleet.credits, 225);
|
2017-07-10 22:50:38 +00:00
|
|
|
|
|
|
|
mission.setCompleted();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(fleet.credits, 225);
|
2017-07-10 22:50:38 +00:00
|
|
|
|
|
|
|
mission = new Mission(new Universe(), fleet);
|
|
|
|
mission.reward = new Equipment();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(ship.cargo, []);
|
2017-07-10 22:50:38 +00:00
|
|
|
mission.setCompleted();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(mission.completed, true);
|
|
|
|
check.equals(fleet.credits, 225);
|
|
|
|
check.equals(ship.cargo, [mission.reward]);
|
2017-07-10 22:50:38 +00:00
|
|
|
})
|
2017-06-27 15:42:28 +00:00
|
|
|
})
|
|
|
|
}
|