예제 #1
0
 public AzureTableBrowserApp()
 {
     PageStack.RegisterDefaultRoute("accounts", () => new StorageAccountsPage());
     PageStack.RegisterRoute("accounts/{account}", () => new ServicesPage());
     PageStack.RegisterRoute("accounts/{account}/tables", () => new TablesPage());
     PageStack.RegisterRoute("accounts/{account}/containers", () => new ContainersPage());
     PageStack.RegisterRoute("accounts/{account}/tables/{table}", () => new TablePage());
     PageStack.RegisterRoute("accounts/{account}/containers/{container}", () => new ContainerPage());
     PageStack.Navigate("accounts");
 }
예제 #2
0
        private void ExpectBadRoute(string badRoute)
        {
            PageStack stack = new PageStack();

            try
            {
                stack.RegisterRoute(badRoute, () => new Page());
                Assert.Fail("An exception should have been thrown for bad route: " + badRoute);
            }
            catch (FormatException) { }
        }
예제 #3
0
        public void PageStackBasic()
        {
            PageStack stack = new PageStack();

            bool observableWorked = false;

            PropertyChangedEventHandler firstChecker = (sender, e) =>
            {
                if (e.PropertyName != nameof(PageStack.CurrentPage))
                {
                    return;
                }

                Assert.IsNotNull(stack.CurrentPage);
                Assert.AreEqual(0, stack.CurrentPage.RouteVariables.Count);
                observableWorked = true;
            };

            stack.PropertyChanged += firstChecker;
            stack.RegisterRoute("Home", () => new Page());
            stack.Navigate("Home");
            Assert.IsTrue(observableWorked);
            stack.PropertyChanged -= firstChecker;

            try
            {
                stack.Navigate("BadRoute");
                Assert.Fail("An exception should have been thrown");
            }
            catch (KeyNotFoundException)
            {
            }

            stack.RegisterRoute("Applications/{ApplicationId}/Components/{ComponentId}", () => new Page());

            stack.Navigate("Applications/foo/Components/bar");
            Assert.IsTrue(stack.CurrentPage.RouteVariables.Count == 2);
            Assert.AreEqual("foo", stack.CurrentPage.RouteVariables["ApplicationId"]);
            Assert.AreEqual("bar", stack.CurrentPage.RouteVariables["ComponentId"]);
        }
예제 #4
0
        private void ExpectGoodRoute(string goodRoute)
        {
            PageStack stack = new PageStack();

            stack.RegisterRoute(goodRoute, () => new Page());
        }