public void ConstructorShouldPopulateCoffeeCondimentsProperty_WhenValidParameterIsPassed()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();
            var coffeeCondiments = new List <string>()
            {
                "Milk", "Chocolate", "Caramel"
            };

            menuProviderMock.Setup(m => m.GetCoffeeCondiments()).Returns(coffeeCondiments);

            //Act
            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            //Assert
            menuProviderMock.Verify(m => m.GetCoffeeCondiments(), Times.Once());

            Assert.That(orderWizardViewModel.CoffeeCondiments.ContainsKey(coffeeCondiments[0]), Is.True);
            Assert.That(orderWizardViewModel.CoffeeCondiments[coffeeCondiments[0]], Is.False);

            Assert.That(orderWizardViewModel.CoffeeCondiments.ContainsKey(coffeeCondiments[1]), Is.True);
            Assert.That(orderWizardViewModel.CoffeeCondiments[coffeeCondiments[1]], Is.False);

            Assert.That(orderWizardViewModel.CoffeeCondiments.ContainsKey(coffeeCondiments[2]), Is.True);
            Assert.That(orderWizardViewModel.CoffeeCondiments[coffeeCondiments[2]], Is.False);
        }
        public void TransferDataTo_ShouldReturnThePassedObjectOfTypeIProcessingOrder()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();
            var processingOrder  = new Mock <IProcessingOrder>();

            var coffeeTypes = new List <string>()
            {
                "Americano", "Latte"
            };
            var coffeeSizes = new List <string>()
            {
                "Grande", "Small"
            };
            var coffeeCondiments = new List <string>()
            {
                "Milk", "Chocolate", "Caramel"
            };

            menuProviderMock.Setup(m => m.GetCoffeeTypes()).Returns(coffeeTypes);
            menuProviderMock.Setup(m => m.GetCoffeeSizes()).Returns(coffeeSizes);
            menuProviderMock.Setup(m => m.GetCoffeeCondiments()).Returns(coffeeCondiments);

            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            //Act
            var result = orderWizardViewModel.TransferDataTo(processingOrder.Object);

            //Assert
            Assert.That(result, Is.InstanceOf <IProcessingOrder>());
            Assert.That(result, Is.SameAs(processingOrder.Object));
        }
        public void SelectedCoffeeSizeShouldBeNull_AfterInitialization()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();
            var coffeeTypes      = new List <string>()
            {
                "Americano", "Latte"
            };
            var coffeeSizes = new List <string>()
            {
                "Grande", "Small"
            };
            var coffeeCondiments = new List <string>()
            {
                "Milk", "Chocolate", "Caramel"
            };

            menuProviderMock.Setup(m => m.GetCoffeeTypes()).Returns(coffeeTypes);
            menuProviderMock.Setup(m => m.GetCoffeeSizes()).Returns(coffeeSizes);
            menuProviderMock.Setup(m => m.GetCoffeeCondiments()).Returns(coffeeCondiments);

            //Act
            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            //Assert
            Assert.That(orderWizardViewModel.SelectedCoffeeSize, Is.Null);
        }
        public void ConstructorShouldCreateInstance_WhenValidParameterIsPassed()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();

            //Act
            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            //Assert
            Assert.That(orderWizardViewModel, Is.InstanceOf <OrderWizardViewModel>());
        }
Ejemplo n.º 5
0
        public ActionResult Index(string city)
        {
            if (!this.cityNames.Contains(city))
            {
                return(RedirectToAction("Index", "Home"));
            }

            TempData["City"] = city;
            ViewBag.City     = city;

            OrderWizardViewModel orderWizardVM = new OrderWizardViewModel(this.menuProvider);

            return(View(orderWizardVM));
        }
        public void ConstructorShouldPopulateCoffeeSizesProperty_WhenValidParameterIsPassed()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();
            var coffeeSizes      = new List <string>()
            {
                "Grande", "Small"
            };

            menuProviderMock.Setup(m => m.GetCoffeeSizes()).Returns(coffeeSizes);

            //Act
            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            //Assert
            menuProviderMock.Verify(m => m.GetCoffeeSizes(), Times.Once());
            Assert.That(orderWizardViewModel.CoffeeSizes, Is.SameAs(coffeeSizes));
        }
Ejemplo n.º 7
0
        [HttpPost] //AJAX
        public ActionResult Index()
        {
            OrderWizardViewModel orderWizardVM = new OrderWizardViewModel(this.menuProvider);

            if (TryUpdateModel(orderWizardVM) && ModelState.IsValid)
            {
                var emptyOrder = this.orderFactory.CreateOrder();
                var order      = orderWizardVM.TransferDataTo(emptyOrder);

                var coffee = this.store.ProcessOrder(order);
                TempData["Order"] = coffee;

                FinalOrderViewModel finalOrderViewModel = new FinalOrderViewModel(coffee);

                return(PartialView("Success", finalOrderViewModel));
            }

            return(View(orderWizardVM));
        }
        public void TransferDataTo_ShouldPopulateSelectedCoffeeCodimentsListOfPassedObject()
        {
            //Arrange
            var menuProviderMock = new Mock <IMenuProvider>();
            var processingOrder  = new Mock <IProcessingOrder>();

            var coffeeTypes = new List <string>()
            {
                "Americano", "Latte"
            };
            var coffeeSizes = new List <string>()
            {
                "Grande", "Small"
            };
            var coffeeCondiments = new List <string>()
            {
                "Milk", "Chocolate", "Caramel"
            };

            menuProviderMock.Setup(m => m.GetCoffeeTypes()).Returns(coffeeTypes);
            menuProviderMock.Setup(m => m.GetCoffeeSizes()).Returns(coffeeSizes);
            menuProviderMock.Setup(m => m.GetCoffeeCondiments()).Returns(coffeeCondiments);

            processingOrder.SetupProperty(p => p.SelectedCoffeeCodimentsList);

            var orderWizardViewModel = new OrderWizardViewModel(menuProviderMock.Object);

            orderWizardViewModel.SelectedCoffeeType = coffeeTypes[1];
            orderWizardViewModel.SelectedCoffeeSize = coffeeSizes[1];
            orderWizardViewModel.CoffeeCondiments[coffeeCondiments[1]] = true;

            //Act
            var result = orderWizardViewModel.TransferDataTo(processingOrder.Object);

            //Assert
            Assert.That(result.SelectedCoffeeCodimentsList,
                        Is.EquivalentTo(orderWizardViewModel.CoffeeCondiments.Where(c => c.Value == true).Select(c => c.Key)));
        }