Beispiel #1
0
        public void Test_WhenModifyCart_IsSuccessful_RedirectsToCartPage()
        {
            var cartItem = new WMoSS.Entities.CartItem
            {
                MovieSessionId = 1,
                TicketQuantity = 1
            };

            // ARRANGE
            // Extension methods cannot be mocked
            // so serialize the cart into string they convert to byte array
            // Also do not mock the cart and cart items
            var cart = new WMoSS.Entities.Cart
            {
                CartItems = new WMoSS.Entities.CartItem[] { cartItem }
            };
            var jsonCart = JsonConvert.SerializeObject(cart);

            byte[] jsonCartBytes = System.Text.Encoding.UTF8.GetBytes(jsonCart);
            mockSession.Setup(ms => ms.TryGetValue("cart", out jsonCartBytes)).Returns(true).Verifiable();


            CartIndexModel.CartItem = cart.CartItems.FirstOrDefault();

            // ACT
            var result = CartIndexModel.OnPostModifyCart();

            // ASSERT
            var redirect = Assert.IsType <RedirectToPageResult>(result);

            Assert.Equal("/Cart/Index", redirect.PageName);
        }
Beispiel #2
0
        public void Test_WhenModifyCartFailsToModifyCart_ItRendersTheCartPageAgain()
        {
            // ARRANGE
            var cartItem = new WMoSS.Entities.CartItem
            {
                MovieSessionId = 1,
                TicketQuantity = 1
            };
            var cartItem2 = new WMoSS.Entities.CartItem
            {
                MovieSessionId = 2,
                TicketQuantity = 1
            };
            var cart = new WMoSS.Entities.Cart
            {
                CartItems = new WMoSS.Entities.CartItem[] { cartItem }
            };

            var jsonCart = JsonConvert.SerializeObject(cart);

            byte[] jsonCartBytes = System.Text.Encoding.UTF8.GetBytes(jsonCart);
            mockSession.Setup(ms => ms.TryGetValue("cart", out jsonCartBytes)).Returns(true).Verifiable();

            // assume cart item submitted has different movie session id
            // this should pass the ModelState.IsValid but fails on further validation
            CartIndexModel.CartItem = cartItem2;

            // ACT
            var result = CartIndexModel.OnPostModifyCart();

            // ASSERT
            Assert.IsType <PageResult>(result);
        }
Beispiel #3
0
        public void Test_Add()
        {
            // ARRANGE
            var cartItem = new WMoSS.Entities.CartItem
            {
                MovieSessionId = 1,
                TicketQuantity = 1
            };

            // ACT
            cart.Add(cartItem);

            // ASSERT
            Assert.Equal(1, cart.CartItems.Count);
        }
Beispiel #4
0
        public void Test_WhenModifyCart_ModelStateIsNotValid_RendersTheCartPageAgain()
        {
            // ARRANGE
            var cartItem = new WMoSS.Entities.CartItem
            {
                MovieSessionId = 1,
                TicketQuantity = 0
            };

            CartIndexModel.ModelState.AddModelError(nameof(cartItem), "Ticket quantity cannot be 0");

            // ACT
            var result = CartIndexModel.OnPostModifyCart();

            // ASSERT
            Assert.IsType <PageResult>(result);
        }