public void CloseScreen_WhenActivateOfPreviouslyActiveThrowsException_RemovesPreviouslyActiveAndSetsActiveScreenToNull() { ScreenConductor conductor = CreateScreenConductor(); OpenNewScreen(conductor); ScreenMock previouslyActive = new ScreenMock(Aggregator); OpenScreen(conductor, previouslyActive); ScreenMock newScreen = new ScreenMock(Aggregator); OpenScreen(conductor, newScreen); PropertyChangedCounter pc = CreateActiveScreenChangedListener(conductor); previouslyActive.ThrowOnActivate = true; CloseScreen(conductor, newScreen, false); Assert.IsFalse(conductor.Screens.Contains(newScreen)); Assert.IsFalse(conductor.Screens.Contains(previouslyActive)); Assert.IsNull(conductor.ActiveScreen); pc.AssertOneRaise(); }
public void OpenScreen_WhenDeactivateThrowsException_AddsScreenAndUpdatesActiveScreen() { ScreenConductor conductor = CreateScreenConductor(); ScreenMock alreadyOpen = OpenNewScreen(conductor); ScreenMock oldScreen = new ScreenMock(Aggregator) { ThrowOnDeactivate = true }; OpenScreen(conductor, oldScreen); PropertyChangedCounter pc = CreateActiveScreenChangedListener(conductor); ScreenMock newScreen = new ScreenMock(Aggregator); OpenScreen(conductor, newScreen); Assert.IsTrue(newScreen.WasInitialized); Assert.IsTrue(newScreen.WasActivated); Assert.IsTrue(conductor.Screens.Contains(newScreen)); Assert.AreEqual(newScreen, conductor.ActiveScreen); Assert.IsFalse(conductor.Screens.Contains(oldScreen)); pc.AssertOneRaise(); }
public void NotifyChange_ForOwnProperty_RaisesPropertyChangedForErrorProperty() { var counter = new PropertyChangedCounter(VM, "Error"); VMInterface.NotifyChange(ChangeArgs .ValidationResultChanged() .PrependViewModel(VM) ); counter.AssertOneRaise(); }
public void PropertyChanged_WhenViewModelPropertyIsSetToInvalidVM_IsRaised() { var counter = new PropertyChangedCounter(Parent, "IsValid"); Assert.IsTrue(Parent.IsValid); Parent.ChildProperty = new ChildVM { ValidationResultToReturn = false };; Assert.IsFalse(Parent.IsValid); counter.AssertOneRaise(); }
public void PropertyChanged_WhenInvalidItemIsAddedToCollection_IsRaised() { var counter = new PropertyChangedCounter(Parent, "IsValid"); Assert.IsTrue(Parent.IsValid); Parent.ChildCollection.Add(new ChildVM { ValidationResultToReturn = false }); Assert.IsFalse(Parent.IsValid); counter.AssertOneRaise(); }
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(); }