Example #1
0
        private ScreenConductor CreateScreenConductor()
        {
            ScreenConductor conductor = ScreenFactory
                                        .For(new ScreenConductor(Aggregator))
                                        .Create(Aggregator);

            new ScreenLifecycleOperations(Aggregator, conductor)
            .Activate();

            return(conductor);
        }
Example #2
0
        public void CloseScreen_SetsParentToNull()
        {
            ScreenConductor conductor = CreateScreenConductor();
            ScreenMock      s         = new ScreenMock(Aggregator);

            OpenScreen(conductor, s);
            Assert.AreEqual(conductor, s.Parent);

            CloseScreen(conductor, s, false);
            Assert.IsNull(s.Parent);
        }
Example #3
0
        public void OpenScreen_WithBaseClassScreenFactory_DoesNotOpenScreenIfActualTypesMatch()
        {
            ScreenConductor c = CreateConductor();

            c.OpenScreen(ScreenFactory.For <SingleInstanceScreen>(Locator));

            IScreenFactory <IScreenBase> baseFactory = ScreenFactory
                                                       .For <SingleInstanceScreen>(Locator);

            c.OpenScreen(baseFactory);

            Assert.AreEqual(1, c.Screens.Count());
        }
        public ScreenConductorAdapter(ScreenConductor screens, IList viewCollection)
        {
            _views   = viewCollection;
            _screens = screens;

            INotifyCollectionChanged notify = (INotifyCollectionChanged)_screens.Screens;

            notify.CollectionChanged += HandleScreensChanged;

            _screens.PropertyChanged += HandlePropertyChanged;

            _screens.Screens.ForEach(AddScreen);

            object view = GetViewForScreen(_screens.ActiveScreen);

            OnActiveViewChanged(view);
        }
Example #5
0
        public void OpenScreen_WhenInitializeThrowsException_DoesNotAddScreenAndDoesNotChangeActiveScreen()
        {
            ScreenConductor condcutor   = CreateScreenConductor();
            ScreenMock      alreadyOpen = OpenNewScreen(condcutor);

            PropertyChangedCounter pc = CreateActiveScreenChangedListener(condcutor);

            ScreenMock newScreen = new ScreenMock(Aggregator)
            {
                ThrowOnInitialize = true
            };

            OpenScreen(condcutor, newScreen);

            Assert.IsFalse(newScreen.WasActivated);
            Assert.IsFalse(condcutor.Screens.Contains(newScreen));
            Assert.AreEqual(alreadyOpen, condcutor.ActiveScreen);
            pc.AssertNoRaise();
        }
Example #6
0
        public void CloseScreen_WhenCloseThrowsException_RemovesScreen()
        {
            ScreenConductor condcutor   = CreateScreenConductor();
            ScreenMock      alreadyOpen = OpenNewScreen(condcutor);

            ScreenMock newScreen = new ScreenMock(Aggregator)
            {
                ThrowOnClose = true
            };

            OpenScreen(condcutor, newScreen);

            PropertyChangedCounter pc = CreateActiveScreenChangedListener(condcutor);

            CloseScreen(condcutor, newScreen, false);

            Assert.IsFalse(condcutor.Screens.Contains(newScreen));
            Assert.AreEqual(alreadyOpen, condcutor.ActiveScreen);
            pc.AssertOneRaise();
        }
Example #7
0
        public void OpenScreen_WhenActivateThrowsException_DoesNotAddScreenAndSetsActivateScreenToNull()
        {
            ScreenConductor conductor   = CreateScreenConductor();
            ScreenMock      alreadyOpen = OpenNewScreen(conductor);

            PropertyChangedCounter pc = CreateActiveScreenChangedListener(conductor);

            ScreenMock newScreen = new ScreenMock(Aggregator)
            {
                ThrowOnActivate = true
            };

            OpenScreen(conductor, newScreen);

            Assert.IsTrue(newScreen.WasInitialized);
            Assert.IsTrue(newScreen.WasActivated);
            Assert.IsFalse(conductor.Screens.Contains(newScreen));
            Assert.IsNull(conductor.ActiveScreen);
            pc.AssertOneRaise();
        }
 public ScreenConductorAdapter(ScreenConductor screens)
     : this(screens, new ObservableCollection <object>())
 {
 }
Example #9
0
 public TestScreenConductorAdapter(ScreenConductor screens)
     : base(screens)
 {
 }
Example #10
0
 private PropertyChangedCounter CreateActiveScreenChangedListener(ScreenConductor conductor)
 {
     return(new PropertyChangedCounter(conductor, "ActiveScreen"));
 }
Example #11
0
 public override void When()
 {
     conductor = new ScreenConductor(screenCollection, screenFactory, screenObjectRegistry);
 }