Example #1
0
 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);
 }
Example #2
0
        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);
            });
        }