private void AssertOffer(TradeOffer actual, NewTradeOffer expectedOffer) { actual.Should().NotBeNull(); actual.Id.Should().BeGreaterThan(0); actual.TradePointId.Should().Be(expectedOffer.TradePointId); actual.CommodityId.Should().Be(expectedOffer.CommodityId); actual.PricePerUnit.Should().Be(expectedOffer.PricePerUnit); actual.Trader.Id.Should().Be(expectedOffer.TraderId); actual.OfferType.Should().Be(expectedOffer.OfferType); }
public void SubmitOffer() { Trader me = null; TradingPost post = null; Commodity commondity = null; NewTradeOffer offer = null; int id = 0; var dbName = "SubmitOffer"; "Given I am a trader".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName)); id = await traderRepository.New(TestTradeDataStatic.MargamanTrader); me = await traderRepository.Get(id); }); "And I have a trading post".x(async() => { var systemRepository = new AstralSystemRepository(CreateNewContext(dbName)); await systemRepository.New(TestSystemDataStatic.StantonSystem); var system = await systemRepository.Get(id); post = system.TradePoints.OfType <TradingPost>().First(); }); "And I have a new commodity".x(async() => { var commodityRepo = new CommodityRepository(CreateNewContext(dbName)); var id = await commodityRepo.New(TestTradeDataStatic.AgriciumCommondity); commondity = await commodityRepo.Get(id); }); "And I have an offer".x(() => offer = new NewTradeOffer { Id = 0, TraderId = me.Id, TradePointId = post.Id, CommodityId = commondity.Id, PricePerUnit = 23.99M, OfferType = (int)OfferType.Buy }); "When I submit the offer".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName)); var command = new NewTradeOfferCommand(traderRepository); id = await command.Execute(offer); }); "Then the Offer is displayed".x(async() => { var traderRepository = new TraderRepository(CreateNewContext(dbName), true); var trader = await traderRepository.Get(me.Id); AssertOffer(trader.TradeOffers.First(o => o.Id == id), offer); }); }