public ProductViewModel(Product product, IShoppingCartRepository shoppingCartRepository, IAlertMessageService alertMessageService, IResourceLoader resourceLoader) { if (product == null) { throw new ArgumentNullException("product"); } _product = product; _shoppingCartRepository = shoppingCartRepository; _alertMessageService = alertMessageService; _resourceLoader = resourceLoader; AddToCartCommand = DelegateCommand.FromAsyncHandler(AddToCart); }
public void OnNavigatedTo_Fill_Items_And_SelectedProduct() { var repository = new MockProductCatalogRepository(); repository.GetProductAsyncDelegate = (productNumber) => { Product product = null; if (productNumber == "1") { product = new Product { ProductNumber = productNumber, SubcategoryId = 1 }; } return Task.FromResult(product); }; repository.GetProductsAsyncDelegate = (subCategoryId) => { ICollection<Product> products = null; if (subCategoryId == 1) { products = new Collection<Product>(new List<Product> { new Product(){ ProductNumber = "1", ImageUri = new Uri("http://image") }, new Product(){ ProductNumber = "2", ImageUri = new Uri("http://image") }, new Product(){ ProductNumber = "3", ImageUri = new Uri("http://image") } }); } return Task.FromResult(products); }; var secondaryTileService = new MockSecondaryTileService() { SecondaryTileExistsDelegate = s => false}; var target = new ItemDetailPageViewModel(repository, new MockShoppingCartRepository(), null, null, secondaryTileService); target.OnNavigatedTo(new NavigatedToEventArgs { Parameter = "1", NavigationMode = NavigationMode.New }, null); Assert.IsNotNull(target.Items); Assert.AreEqual(3, ((IReadOnlyCollection<ProductViewModel>)target.Items).Count); Assert.AreEqual(target.Items.First(), target.SelectedProduct); }
public ProductViewModel(Product product) : this(product, null, null, null) { }