public void OnNavigatedTo_Fill_Items_And_Title()
        {
            var repository = new MockProductCatalogRepository();
            var navigationService = new MockNavigationService();
            var searchPaneService = new MockSearchPaneService();

            repository.GetCategoryAsyncDelegate = (categoryId) =>
            {
                Category category = null;

                if (categoryId == 1)
                {
                    category = new Category { Id = categoryId, Title = "CategoryTitle" };
                }

                return Task.FromResult(category);
            };

            repository.GetSubcategoriesAsyncDelegate = (categoryId) =>
            {
                ReadOnlyCollection<Category> categories = null;

                if (categoryId == 1)
                {
                    categories = new ReadOnlyCollection<Category>(new List<Category>
                    {
                        new Category(),
                        new Category(),
                        new Category()
                    });
                }

                return Task.FromResult(categories);
            };

            var viewModel = new GroupDetailPageViewModel(repository, navigationService, null, null, searchPaneService);
            viewModel.OnNavigatedTo(1, NavigationMode.New, null);

            Assert.IsNotNull(viewModel.Items);
            Assert.AreEqual(3, ((ICollection<CategoryViewModel>)viewModel.Items).Count);
            Assert.AreEqual("CategoryTitle", viewModel.Title);
        }
コード例 #2
0
        public void OnNavigatedTo_Fill_RootCategories()
        {
            var repository = new MockProductCatalogRepository();
            var navigationService = new MockNavigationService();
            var searchPaneService = new MockSearchPaneService();

            repository.GetCategoriesAsyncDelegate = (maxAmmountOfProducts) =>
            {
                var categories = new ReadOnlyCollection<Category>(new List<Category>{
                    new Category(),
                    new Category(),
                    new Category()
                });

                return Task.FromResult(categories);
            };

            var viewModel = new HubPageViewModel(repository, navigationService, null, null, searchPaneService);
            viewModel.OnNavigatedTo(null, NavigationMode.New, null);

            Assert.IsNotNull(viewModel.RootCategories);
            Assert.AreEqual(((ICollection<CategoryViewModel>)viewModel.RootCategories).Count, 3);
        }
コード例 #3
0
 public void FailedCallToProductCatalogRepository_ShowsAlert()
 {
     var alertCalled = false;
     var productCatalogRepository = new MockProductCatalogRepository();
     var navService = new MockNavigationService();
     var searchPaneService = new MockSearchPaneService();
     productCatalogRepository.GetCategoriesAsyncDelegate = (maxAmmountOfProducts) =>
     {
         throw new HttpRequestException();
     };
     var alertMessageService = new MockAlertMessageService();
     alertMessageService.ShowAsyncDelegate = (s, s1) =>
     {
         alertCalled = true;
         Assert.AreEqual("Error", s1);
         return Task.FromResult(string.Empty);
     };
     var target = new HubPageViewModel(productCatalogRepository, navService,
                                                          alertMessageService, new MockResourceLoader(), searchPaneService);
     target.OnNavigatedTo(null, NavigationMode.New, null);
     
     Assert.IsTrue(alertCalled);
 }