Пример #1
0
        public void PostOrder()
        {
            session.Transaction.Commit();
            Assert.That(client.Addresses.Count, Is.EqualTo(2), "для того что бы тест удался адресов должно быть два");
            var offerRepository = IoC.Resolve <IOfferRepository>();

            var data = service.GetOffers(new[] { "name" }, new[] { "*" }, false, null, null, 100, 0);

            session.Transaction.Begin();
            Assert.That(data.Tables[0].Rows.Count, Is.GreaterThan(0), "не нашли предложений");
            var row    = data.Tables[0].Rows[0];
            var coreId = Convert.ToInt64(row["OfferId"]);
            var core   = TestCore.Find((ulong)coreId);

            core.MinOrderCount = 50;
            session.Save(core);

            session.Transaction.Commit();
            var result = service.PostOrder(new[] { coreId },
                                           new[] { 50 },
                                           new[] { "это тестовый заказ" },
                                           address.Id);

            Assert.That(result.Tables[0].Rows[0]["OfferId"], Is.EqualTo(coreId));
            Assert.That(result.Tables[0].Rows[0]["Posted"], Is.EqualTo(true));

            var offer = offerRepository.GetById(new User {
                Id = user.Id
            }, (ulong)coreId);
            var order = TestOrder.Queryable.Single(o => o.Client == client);

            Assert.That(offer.MinOrderCount, Is.EqualTo(50));
            Assert.That(order.Address.Id, Is.EqualTo(address.Id));
            Assert.That(order.Items[0].CoreId, Is.EqualTo(offer.Id.CoreId));
            Assert.That(order.Items[0].OrderCost, Is.EqualTo(offer.OrderCost));
            Assert.That(order.Items[0].MinOrderCount, Is.EqualTo(offer.MinOrderCount));
            Assert.That(order.Items[0].RequestRatio, Is.EqualTo(offer.RequestRatio));
        }