public void OpenScreen_WhenScreenIsNotAlreadyOpen_PublishesScreenOpenedEvent() { var conductor = CreateScreenConductor(); var newScreen = new SingleInstanceScreen(); var eventArgs = ExpectScreenOpenedEvent(() => { conductor.OpenScreen(ScreenFactory.For(newScreen)); }); Assert.IsNotNull(eventArgs); Assert.AreEqual(conductor, eventArgs.Conductor); Assert.AreEqual(newScreen, eventArgs.Screen); Assert.IsFalse(eventArgs.WasAlreadyOpen); }
public void OpenScreen_WhenScrenIsAlreadyOpen_DoesNotAddScreenCloseHandler() { var conductor = CreateScreenConductor(); var alreadyOpenedScreen = new SingleInstanceScreen(); conductor.OpenScreen(ScreenFactory.For(alreadyOpenedScreen)); conductor.OpenScreen(ScreenFactory.For(alreadyOpenedScreen)); Assert.AreEqual( 1, alreadyOpenedScreen .Children .OfType <ScreenCloseHandler>() .Count() ); }