Exemplo n.º 1
0
        public void OpenScreenUseScreenLocation_WhenNoMatchingScreenIsOpen_CreatesNewScreen()
        {
            var conductor    = CreateConductor();
            var firstSubject = new BaseSubject {
                Value = "First Subject"
            };
            var differentSubject = new BaseSubject {
                Value = "Different Subject"
            };

            conductor.OpenScreen(
                ScreenFactory
                .For <MultipleInstancesScreen>(Locator)
                );

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(firstSubject)
                .For <LocatableScreen>(Locator)
                );

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(differentSubject)
                .For <LocatableScreen>(Locator)
                );

            CollectionAssert.AreEqual(
                new[] { firstSubject, differentSubject },
                GetSubjectsOfOpenScreens(conductor)
                );
        }
Exemplo n.º 2
0
        public void AddScreen_CallsInitialize()
        {
            Object     subject = new Object();
            TestScreen s       = Collection.AddScreen(
                ScreenFactory.WithSubject(subject).For <TestScreen>(Locator)
                );

            Assert.AreEqual(subject, s.Subject);
        }
Exemplo n.º 3
0
        public void OpenScreenUseScreenLocation_WhenScreenImplementsLocatableScreenForBaseClass_ActivatesScreen()
        {
            var conductor     = CreateConductor();
            var singleSubject = new DerivedSubject {
                Value = "Single Subject"
            };

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <LocatableScreen>(Locator)
                );

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <LocatableScreen>(Locator)
                );

            CollectionAssert.AreEqual(
                new[] { singleSubject },
                GetSubjectsOfOpenScreens(conductor)
                );
        }
Exemplo n.º 4
0
        public void OpenScreenUseScreenLocation_WhenScreenFactoryIsDowncasted_Works()
        {
            var conductor     = CreateConductor();
            var singleSubject = new BaseSubject {
                Value = "Single Subject"
            };

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <DerivedLocatableScreen>(Locator)
                );

            IScreenFactory <IScreenBase> downcasted = ScreenFactory
                                                      .WithSubject(singleSubject)
                                                      .For <DerivedLocatableScreen>(Locator);

            conductor.OpenScreen(downcasted);

            CollectionAssert.AreEqual(
                new[] { singleSubject },
                GetSubjectsOfOpenScreens(conductor)
                );
        }
Exemplo n.º 5
0
        public void OpenScreenUseScreenLocation_WhenAttributeIsOnBaseClass_Works()
        {
            var conductor     = CreateConductor();
            var singleSubject = new BaseSubject {
                Value = "Single Subject"
            };

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <DerivedLocatableScreen>(Locator)
                );

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <DerivedLocatableScreen>(Locator)
                );

            CollectionAssert.AreEqual(
                new[] { singleSubject },
                GetSubjectsOfOpenScreens(conductor)
                );
        }
Exemplo n.º 6
0
        public void OpenScreenUseScreenLocation_WhenMatchingScreenIsAlreadyOpen_ActivatesScreen()
        {
            var conductor     = CreateConductor();
            var singleSubject = new BaseSubject {
                Value = "Single Subject"
            };

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <LocatableScreen>(Locator)
                );

            conductor.OpenScreen(
                ScreenFactory
                .WithSubject(singleSubject)
                .For <LocatableScreen>(Locator)
                );

            CollectionAssert.AreEqual(
                new[] { singleSubject },
                GetSubjectsOfOpenScreens(conductor)
                );
        }