public void TestVendingMachine() { /// Создать тестовый счет пользователя var user = new User(); user.CreateDefaults(); /// Создать торговый автомат для тестирования var vm = Container.Resolve<IVMService>(); Assert.IsNotNull(vm); vm.CreateDefaults(); /// Внести деньги на счет автомата var money = user.Account.Get(1, 1, 1, 5, 10); Assert.AreEqual(money.Length, 5); vm.UserAccount.Add(money); Assert.AreEqual(vm.UserAccount.Sum, new Money(18)); Assert.AreEqual(vm.UserAccount.TotalSum, new Money(18)); money = user.Account.Get(2, 1, 1, 1); Assert.AreEqual(money.Length, 4); vm.UserAccount.Add(money); Assert.AreEqual(vm.UserAccount.Sum, new Money(23)); Assert.AreEqual(vm.UserAccount.TotalSum, new Money(23)); /// Купить чай за 13 рублей try { var tea = vm.Buy(Product.Tea.Name); Assert.IsNotNull(tea); Assert.AreEqual(vm.UserAccount.TotalSum, new Money(10)); // 23 - 13 = 10 user.Products.Add(tea); Assert.AreEqual(user.Products.Count, 1); } catch (VMException) { /// Нет денег на чай :((( } BuyCoffee: /// Купить кофе за 18 рублей try { var coffee = vm.Buy(Product.Coffee.Name); Assert.IsNotNull(coffee); Assert.AreEqual(vm.UserAccount.TotalSum, new Money(2)); user.Products.Add(coffee); Assert.AreEqual(user.Products.Count, 2); } catch (VMException) { money = user.Account.Get(Money.Five); if (money.Length > 0) { vm.UserAccount.Add(money); goto BuyCoffee; } } /// Запросить остаток var rest = vm.GetRest(); Assert.AreEqual(rest.Length, 1); Assert.AreEqual(rest[0], Money.Two); user.Account.Add(rest); Assert.IsTrue(user.Account.Sum > 0); Assert.AreEqual(user.Account.Sum, user.Account.TotalSum); }
public MvcDomainModelContext() { User = new User(); }
public MainViewModel() { User = new User(); }