示例#1
0
        public void OnNavigatedTo_When_Service_Not_Available_Then_Pops_Alert()
        {
            var repository     = new MockProductCatalogRepository();
            var alertService   = new MockAlertMessageService();
            var resourceLoader = new MockResourceLoader();

            bool alertCalled = false;

            repository.GetCategoryAsyncDelegate = (categoryId) =>
            {
                throw new Exception();
            };

            alertService.ShowAsyncDelegate = (msg, title) =>
            {
                alertCalled = true;
                return(Task.FromResult(string.Empty));
            };

            var viewModel = new GroupDetailPageViewModel(repository, alertService, resourceLoader);

            viewModel.OnNavigatedTo(new NavigatedToEventArgs {
                Parameter = "1", NavigationMode = NavigationMode.New
            }, null);

            Assert.IsTrue(alertCalled);
        }
示例#2
0
        public void OnNavigatedTo_Fill_Items_And_Title()
        {
            var repository = new MockProductCatalogRepository();

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

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

                return(Task.FromResult(category));
            };
            repository.GetProductsAsyncDelegate = i =>
            {
                ICollection <Product> products = null;
                if (i == 1)
                {
                    products = new Collection <Product>(new List <Product>
                    {
                        new Product(),
                        new Product(),
                        new Product()
                    });
                }
                return(Task.FromResult(products));
            };

            var viewModel = new GroupDetailPageViewModel(repository, null, null);

            viewModel.OnNavigatedTo(new NavigatedToEventArgs {
                Parameter = 1, NavigationMode = NavigationMode.New
            }, null);

            Assert.IsNotNull(viewModel.Items);
            Assert.AreEqual(3, ((ICollection <ProductViewModel>)viewModel.Items).Count);
            Assert.AreEqual("CategoryTitle", viewModel.Title);
        }