public void AddsAllMruProducts()
 {
     for (int i = 0; i < 2; i++)
         factories.MruProducts.AddProduct(factories.Products[i]);
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(viewModel, true);
     sut.LoadAsync();
     Assert.AreEqual(factories.Products.Count + 2, viewModel.Products.Count);
     Assert.AreEqual(factories.Products, viewModel.Products.Select(vm => vm.Product).Distinct());
 }
 public void AddsMruProductWithMruCategory()
 {
     factories.MruProducts.AddProduct(factories.Products.First());
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(viewModel, true);
     sut.LoadAsync();
     Assert.AreEqual(factories.Products.Count + 1, viewModel.Products.Count);
     var mruProducts = viewModel.Products
         .Where(product => product.Product == factories.Products.First()).ToList();
     Assert.AreEqual(2, mruProducts.Count);
     Assert.AreNotEqual(viewModel.Categories.First(), mruProducts[0].Category);
     Assert.AreEqual(viewModel.Categories.First(), mruProducts[1].Category);
     Assert.AreEqual(mruProducts[0].WidthOfFilledCuRect, mruProducts[1].WidthOfFilledCuRect);
 }
 public void WhenFlagIsFalseDoesNotAddMruCategory()
 {
     factories.MruProducts.AddProduct(factories.Products.First());
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(viewModel, false);
     sut.LoadAsync();
     Assert.AreEqual(factories.Categories.Count, sut.Categories.Count);
 }
 public void WhenCreatedWithoutViewModelDoesNotAddMruCategory()
 {
     factories.MruProducts.AddProduct(factories.Products.First());
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(factories,
         new BackgroundWorkerSyncFactory());
     Assert.AreEqual(factories.Categories.Count, sut.Categories.Count);
 }
 public void WhenMruProductsArePresentDoesAddMruCategory()
 {
     factories.MruProducts.AddProduct(factories.Products.First());
     factories.Settings.MruProductMaxCount = 15;
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(viewModel, true);
     sut.LoadAsync();
     Assert.AreEqual(factories.Categories.Count + 1, sut.Categories.Count);
     Assert.AreEqual(Translations.RecentlyUsed.Replace("{0}", "15"), sut.Categories.First().Name);
 }
 public void WhenMruProductsAreNotPresentDoesNotAddMruCategory()
 {
     var sut = new ProductListingViewModel.CategoriesAndProductsLoader(viewModel, true);
     sut.LoadAsync();
     Assert.AreEqual(factories.Categories.Count, sut.Categories.Count);
 }