diff options
Diffstat (limited to 'Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs')
-rw-r--r-- | Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs b/Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs index d660896..01c16fd 100644 --- a/Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs +++ b/Source/Wpf/Prism.Wpf.Tests/Regions/Behaviors/RegionMemberLifetimeBehaviorFixture.cs @@ -70,6 +70,32 @@ namespace Prism.Wpf.Tests.Regions.Behaviors } [TestMethod] + public void WhenIRegionMemberLifetimeItemReturnsKeepAliveFalseCanRemoveFromRegion() + { + // Arrange + var regionItemMock = new Mock<IRegionMemberLifetime>(); + regionItemMock.Setup(i => i.KeepAlive).Returns(false); + + var view = regionItemMock.Object; + + Region.Add(view); + Region.Activate(view); + + // The presence of the following two lines is essential for the test: + // we want to access both ActiveView and Views in that order + Assert.IsTrue(Region.ActiveViews.Contains(view)); + Assert.IsTrue(Region.Views.Contains(view)); + + // Act + // This may throw + Region.Remove(view); + + // Assert + Assert.IsFalse(Region.Views.Contains(view)); + Assert.IsFalse(Region.ActiveViews.Contains(view)); + } + + [TestMethod] public void WhenRegionContainsMultipleMembers_OnlyRemovesThoseDeactivated() { // Arrange |