public void OnNavigatedTo_Fill_Properties_With_Shopping_Cart_Items()
{
var navigationService = new MockNavigationService();
var shoppingCartRepository = new MockShoppingCartRepository();
shoppingCartRepository.GetShoppingCartAsyncDelegate = () =>
{
ShoppingCart shoppingCart = null;
var shoppingCartItems = new ObservableCollection<ShoppingCartItem>
{
new ShoppingCartItem() {Product = new Product { ListPrice = 100, DiscountPercentage = 50, ProductNumber = "p1", ImageUri = new Uri("http://image")}, Currency = "USD", Quantity = 1},
new ShoppingCartItem() {Product = new Product { ListPrice = 100, DiscountPercentage = 50, ProductNumber = "p2", ImageUri = new Uri("http://image")}, Currency = "USD", Quantity = 1}
};
shoppingCart = new ShoppingCart(shoppingCartItems) { Currency = "USD"};
return Task.FromResult(shoppingCart);
};
bool signInUserControlOnNavigatedToCalled = false;
var signInUserControlViewModel = new MockSignInUserControlViewModel()
{
OnNavigatedToDelegate = (a, b, c) => signInUserControlOnNavigatedToCalled = true
};
var eventAggregator = new MockEventAggregator();
eventAggregator.GetEventDelegate = type => new MockShoppingCartUpdatedEvent();
var target = new ShoppingCartPageViewModel(shoppingCartRepository, navigationService, new MockAccountService(), signInUserControlViewModel, null, null, null, null, eventAggregator);
target.OnNavigatedTo(new NavigatedToEventArgs { Parameter = null, NavigationMode = NavigationMode.New }, null);
Assert.IsTrue(signInUserControlOnNavigatedToCalled);
Assert.AreEqual("$200.00", target.FullPrice);
Assert.AreEqual("$100.00", target.TotalDiscount);
Assert.AreEqual(2, target.ShoppingCartItemViewModels.Count);
}