private ScreenConductor CreateScreenConductor() { ScreenConductor conductor = ScreenFactory .For(new ScreenConductor(Aggregator)) .Create(Aggregator); new ScreenLifecycleOperations(Aggregator, conductor) .Activate(); return(conductor); }
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); }
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); }
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(); }
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(); }
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>()) { }
public TestScreenConductorAdapter(ScreenConductor screens) : base(screens) { }
private PropertyChangedCounter CreateActiveScreenChangedListener(ScreenConductor conductor) { return(new PropertyChangedCounter(conductor, "ActiveScreen")); }
public override void When() { conductor = new ScreenConductor(screenCollection, screenFactory, screenObjectRegistry); }