示例#1
0
        public void NavigatedTo_CalculatesTotalNumberOfItemsInCart()
        {
            var shoppingCart = new ShoppingCart(new List <ShoppingCartItem>()
            {
                new ShoppingCartItem {
                    Quantity = 1
                },
                new ShoppingCartItem {
                    Quantity = 2
                }
            });
            var shoppingCartRepository = new MockShoppingCartRepository();
            var eventAggregator        = new MockEventAggregator();

            eventAggregator.GetEventDelegate = type =>
            {
                if (type == typeof(ShoppingCartUpdatedEvent))
                {
                    return(new ShoppingCartUpdatedEvent());
                }
                if (type == typeof(ShoppingCartItemUpdatedEvent))
                {
                    return(new ShoppingCartItemUpdatedEvent());
                }
                return(null);
            };
            var accountService = new MockAccountService();

            accountService.VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult((UserInfo)null);
            shoppingCartRepository.GetShoppingCartAsyncDelegate  = () => Task.FromResult(shoppingCart);
            var target = new ShoppingCartTabUserControlViewModel(shoppingCartRepository, eventAggregator, null, null, accountService);

            Assert.AreEqual(3, target.ItemCount);
        }
示例#2
0
        public void ShoppingCartUpdated_WithNullCart_SetsItemCountZero()
        {
            var shoppingCartRepository = new MockShoppingCartRepository();
            var shoppingCart           = new ShoppingCart(new List <ShoppingCartItem> {
                new ShoppingCartItem {
                    Quantity = 99
                }
            });

            shoppingCartRepository.GetShoppingCartAsyncDelegate = () => Task.FromResult(shoppingCart);
            var eventAggregator          = new MockEventAggregator();
            var shoppingCartUpdatedEvent = new ShoppingCartUpdatedEvent();

            eventAggregator.GetEventDelegate = type =>
            {
                if (type == typeof(ShoppingCartUpdatedEvent))
                {
                    return(shoppingCartUpdatedEvent);
                }
                if (type == typeof(ShoppingCartItemUpdatedEvent))
                {
                    return(new ShoppingCartItemUpdatedEvent());
                }
                return(null);
            };
            var accountService = new MockAccountService();

            accountService.VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult((UserInfo)null);
            var target = new ShoppingCartTabUserControlViewModel(shoppingCartRepository, eventAggregator, null, null, accountService);

            shoppingCartUpdatedEvent.Publish(null);

            Assert.AreEqual(99, target.ItemCount);

            shoppingCartRepository.GetShoppingCartAsyncDelegate = () => Task.FromResult <ShoppingCart>(null);
            shoppingCartUpdatedEvent.Publish(null);

            Assert.AreEqual(0, target.ItemCount);
        }
示例#3
0
        public void FailedCallToShoppingCartRepository_ShowsAlert()
        {
            var alertCalled            = false;
            var shoppingCartRepository = new MockShoppingCartRepository();

            shoppingCartRepository.GetShoppingCartAsyncDelegate = () =>
            {
                throw new Exception();
            };
            var alertMessageService = new MockAlertMessageService();

            alertMessageService.ShowAsyncDelegate = (s, s1) =>
            {
                alertCalled = true;
                Assert.AreEqual("ErrorServiceUnreachable", s1);
                return(Task.FromResult(string.Empty));
            };
            var accountService = new MockAccountService();

            accountService.VerifyUserAuthenticationAsyncDelegate = () => Task.FromResult((UserInfo)null);
            var target = new ShoppingCartTabUserControlViewModel(shoppingCartRepository, null, alertMessageService, new MockResourceLoader(), accountService);

            Assert.IsTrue(alertCalled);
        }