Пример #1
0
        public void TestPurchase()//Тестирование покупки
        {
            _factory.Stub(x => x.CustomerPurseProxy).Return(new MockCustomerPurseRepository(1).Proxy);
            ICustomerPurseRepository customerBalance = _factory.CustomerPurseProxy.Repo;

            _factory.Stub(x => x.VendingMachineChangeProxy).Return(new MockVendingMachineChangeRepository(2).Proxy);
            IVendingMachineChangeRepository vendingMachineBalance = _factory.VendingMachineChangeProxy.Repo;

            _factory.Stub(x => x.GoodsProxy).Return(new MockGoodsRepository(1, 7).Proxy);
            IGoodsRepository goods = _factory.GoodsProxy.Repo;

            Assert.IsTrue(customerBalance.Payment(vendingMachineBalance, Dummies.DummyInitCoins(1)));                                                                     //Перевод монет между балансами произошел без ошибок (в аппарате монет нужного номинала в достатке)
            Assert.IsTrue(customerBalance.Shipping(goods.Drinks.First(x => x.Value.type == DrinkType.Tea).Value.price));                                                  //Успешное списание средств с внесенной суммы
            goods.Purchase(goods.Drinks.First(x => x.Value.type == DrinkType.Tea).Key);                                                                                   //Покупка напитка
            Assert.AreEqual(-1, goods.Drinks.Any(x => x.Value.type == DrinkType.Tea) ? goods.Drinks.First(x => x.Value.type == DrinkType.Tea).Value.quantity : -1);       //Ассортимен напитков не содержит нужный
            Assert.IsTrue(customerBalance.Shipping(goods.Drinks.First(x => x.Value.type == DrinkType.Coffee).Value.price));                                               //Успешное списание средств с внесенной суммы
            goods.Purchase(goods.Drinks.First(x => x.Value.type == DrinkType.Coffee).Key);                                                                                //Покупка напитка
            Assert.AreEqual(-1, goods.Drinks.Any(x => x.Value.type == DrinkType.Coffee) ? goods.Drinks.First(x => x.Value.type == DrinkType.Coffee).Value.quantity : -1); //Ассортимен напитков не содержит нужный
            Assert.IsFalse(customerBalance.Shipping(goods.Drinks.First(x => x.Value.type == DrinkType.Juice).Value.price));                                               //Списание средств не удалось из-за недостатка внесенной суммы
            Assert.IsFalse(customerBalance.Payment(vendingMachineBalance, Dummies.DummyInitCoins(1)));                                                                    //Перевод монет между балансами имеет ошибку (в аппарате нет монет нужного номинала)
            Assert.AreEqual(1, goods.Drinks.Any(x => x.Value.type == DrinkType.Juice) ? goods.Drinks.First(x => x.Value.type == DrinkType.Juice).Value.quantity : -1);    //Ассортимен напитков содержит нужный
        }
Пример #2
0
 internal MockGoodsRepository(int quantity, int price)
 {
     (_proxy = new ModelFactory(null).GoodsProxy).Repo.Reinit(Dummies.DummyInitGoods(quantity, price));
 }