2017-03-23 18:58:09 +00:00
|
|
|
module TS.SpaceTac.Specs {
|
|
|
|
describe("Shop", () => {
|
|
|
|
it("generates a stock", () => {
|
|
|
|
let shop = new Shop();
|
2017-05-10 15:29:10 +00:00
|
|
|
expect((<any>shop).stock.length).toBe(0);
|
|
|
|
expect(shop.getStock().length).toBeGreaterThan(20);
|
2017-03-23 18:58:09 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it("buys and sells items", function () {
|
2017-05-10 15:29:10 +00:00
|
|
|
let shop = <any>new Shop();
|
2017-03-23 18:58:09 +00:00
|
|
|
let equ1 = new Equipment(SlotType.Shield, "shield");
|
2017-04-25 20:54:23 +00:00
|
|
|
equ1.price = 50;
|
2017-03-23 18:58:09 +00:00
|
|
|
let equ2 = new Equipment(SlotType.Hull, "hull");
|
2017-04-25 20:54:23 +00:00
|
|
|
equ2.price = 150;
|
2017-03-23 18:58:09 +00:00
|
|
|
shop.stock = [equ1, equ2];
|
|
|
|
let fleet = new Fleet();
|
|
|
|
fleet.credits = 1000;
|
|
|
|
spyOn(shop, "getPrice").and.returnValue(800);
|
|
|
|
|
|
|
|
let result = shop.sellToFleet(equ1, fleet);
|
|
|
|
expect(result).toBe(true);
|
|
|
|
expect(shop.stock).toEqual([equ2]);
|
|
|
|
expect(fleet.credits).toEqual(200);
|
|
|
|
result = shop.sellToFleet(equ2, fleet);
|
|
|
|
expect(result).toBe(false);
|
|
|
|
expect(shop.stock).toEqual([equ2]);
|
|
|
|
expect(fleet.credits).toEqual(200);
|
|
|
|
|
|
|
|
result = shop.buyFromFleet(equ1, fleet);
|
|
|
|
expect(result).toBe(true);
|
2017-04-25 20:54:23 +00:00
|
|
|
expect(shop.stock).toEqual([equ1, equ2]);
|
2017-03-23 18:58:09 +00:00
|
|
|
expect(fleet.credits).toEqual(1000);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|