示例#1
0
        public async Task Conductor_ConductWithTests()
        {
            var root = new Conductor <StateScreen> .Collection.AllActive();

            var child1 = new StateScreen
            {
                DisplayName = "screen1"
            };
            var child2 = new StateScreen(TimeSpan.FromSeconds(3))
            {
                DisplayName = "screen2"
            };

            var child3 = new StateScreen()
            {
                DisplayName = "screen3"
            };

            root.Items.Add(child1);
            root.Items.Add(child2);
            root.Items.Add(child3);

            await ScreenExtensions.TryActivateAsync(root).ConfigureAwait(false);

            await ScreenExtensions.TryDeactivateAsync(root, true).ConfigureAwait(false);

            Assert.True(child1.IsClosed, "child 1 should be closed");
            Assert.True(child2.IsClosed, "child 2 should be closed");
            Assert.True(child3.IsClosed, "child 3 should be closed");
        }
示例#2
0
        public async Task Screen_ConductWithTests()
        {
            var root = new Screen();

            var child1 = new StateScreen
            {
                DisplayName = "screen1"
            };
            // simulate a long deactivation process
            var child2 = new StateScreen(TimeSpan.FromSeconds(3))
            {
                DisplayName = "screen2"
            };

            var child3 = new StateScreen()
            {
                DisplayName = "screen3"
            };

            child1.ConductWith(root);
            child2.ConductWith(root);
            child3.ConductWith(root);

            await ScreenExtensions.TryActivateAsync(root).ConfigureAwait(false);

            await ScreenExtensions.TryDeactivateAsync(root, true).ConfigureAwait(false);

            Assert.True(child1.IsClosed, "child 1 should be closed");
            Assert.True(child2.IsClosed, "child 2 should be closed");
            Assert.True(child3.IsClosed, "child 3 should be closed");
        }
 public void CanCloseIsTrueWhenItemsAreNotClosableAndCloseStrategyCloses() {
     var conductor = new Conductor<IScreen>.Collection.OneActive { CloseStrategy = new DefaultCloseStrategy<IScreen>(true) };
     var conducted = new StateScreen { IsClosable = true };
     conductor.Items.Add(conducted);
     ((IActivate)conductor).Activate();
     conductor.CanClose(Assert.True);
     Assert.True(conducted.IsClosed);
 }
 public void CanCloseIsTrueWhenItemsAreClosable() {
     var conductor = new Conductor<IScreen>.Collection.OneActive();
     var conducted = new StateScreen { IsClosable = true };
     conductor.Items.Add(conducted);
     ((IActivate)conductor).Activate();
     conductor.CanClose(Assert.True);
     Assert.False(conducted.IsClosed);
 }
        public void CanCloseIsTrueWhenItemsAreClosable()
        {
            var conductor = new Conductor <IScreen> .Collection.OneActive();

            var conducted = new StateScreen {
                IsClosable = true
            };

            conductor.Items.Add(conducted);
            ((IActivate)conductor).Activate();
            conductor.CanClose(Assert.True);
            Assert.False(conducted.IsClosed);
        }
        public void CanCloseIsTrueWhenItemsAreNotClosableAndCloseStrategyCloses()
        {
            var conductor = new Conductor <IScreen> .Collection.OneActive {
                CloseStrategy = new DefaultCloseStrategy <IScreen>(true)
            };
            var conducted = new StateScreen {
                IsClosable = true
            };

            conductor.Items.Add(conducted);
            ((IActivate)conductor).Activate();
            conductor.CanClose(Assert.True);
            Assert.True(conducted.IsClosed);
        }
        public async Task CanCloseIsTrueWhenItemsAreClosable()
        {
            var conductor = new Conductor <IScreen> .Collection.OneActive();

            var conducted = new StateScreen
            {
                IsClosable = true
            };

            conductor.Items.Add(conducted);

            await((IActivate)conductor).ActivateAsync(CancellationToken.None);
            var canClose = await conductor.CanCloseAsync(CancellationToken.None);

            Assert.True(canClose);
            Assert.False(conducted.IsClosed);
        }
        public async Task CanCloseIsTrueWhenItemsAreNotClosableAndCloseStrategyCloses()
        {
            var conductor = new Conductor <IScreen> .Collection.OneActive
            {
                CloseStrategy = new DefaultCloseStrategy <IScreen>(true)
            };
            var conducted = new StateScreen
            {
                IsClosable = true
            };

            conductor.Items.Add(conducted);
            await((IActivate)conductor).ActivateAsync(CancellationToken.None);
            var canClose = await conductor.CanCloseAsync(CancellationToken.None);

            Assert.True(canClose);
            Assert.True(conducted.IsClosed);
        }