public void GivenTabControlViewModelWithTabs_WhenRemovingTabAndRemovedTabRaisesPropertyChangedEvent_ThenTabControlDoesNotRaiseEvent() { // Given var tabControlViewModel = new TabControlViewModel(); PropertyChangedEventArgs eventArgs = null; bool propertyChangedTriggered = false; tabControlViewModel.PropertyChanged += (o, e) => { eventArgs = e; propertyChangedTriggered = true; }; var tabViewModel = new TestTabViewModel(); tabControlViewModel.Tabs.Add(tabViewModel); var random = new Random(21); // When bool removeSuccessful = tabControlViewModel.Tabs.Remove(tabViewModel); Assert.That(removeSuccessful, Is.True); tabViewModel.TabProperty = random.Next(); // Then Assert.That(propertyChangedTriggered, Is.False); Assert.That(eventArgs, Is.Null); }
public void SelectedTabItem_WithValidValue_RaisesPropertyChangedEvent() { // Setup var tabControlViewModel = new TabControlViewModel(); bool propertyChangedTriggered = false; PropertyChangedEventArgs eventArgs = null; tabControlViewModel.PropertyChanged += (o, e) => { propertyChangedTriggered = true; eventArgs = e; }; var tabViewModel = new TestTabViewModel(); tabControlViewModel.Tabs.Add(tabViewModel); // Call tabControlViewModel.SelectedTabItem = tabViewModel; // Assert Assert.That(propertyChangedTriggered, Is.True); Assert.That(eventArgs, Is.Not.Null); Assert.That(eventArgs.PropertyName, Is.EqualTo(nameof(TabControlViewModel.SelectedTabItem))); }
public void GivenTabControlViewModelWithTabs_WhenTabRaisesPropertyChangedEvent_ThenTabControlViewRaisesPropertyChangedEvent() { // Given var tabControlViewModel = new TabControlViewModel(); PropertyChangedEventArgs eventArgs = null; bool propertyChangedTriggered = false; tabControlViewModel.PropertyChanged += (o, e) => { eventArgs = e; propertyChangedTriggered = true; }; var tabViewModel = new TestTabViewModel(); tabControlViewModel.Tabs.Add(tabViewModel); var random = new Random(21); // When tabViewModel.TabProperty = random.Next(); // Then Assert.That(propertyChangedTriggered, Is.True); Assert.That(eventArgs, Is.Not.Null); Assert.That(eventArgs.PropertyName, Is.EqualTo(nameof(TestTabViewModel.TabProperty))); }
public void GivenTabControlViewModelWithTabs_WhenViewModelDisposedAndTabRaisesPropertyChangedEvent_ThenTabControlDoesNotRaiseEvent() { // Given var tabControlViewModel = new TabControlViewModel(); PropertyChangedEventArgs eventArgs = null; bool propertyChangedTriggered = false; tabControlViewModel.PropertyChanged += (o, e) => { eventArgs = e; propertyChangedTriggered = true; }; var tabViewModel = new TestTabViewModel(); tabControlViewModel.Tabs.Add(tabViewModel); var random = new Random(21); // Precondition CollectionAssert.AreEqual(new[] { tabViewModel }, tabControlViewModel.Tabs); // When tabControlViewModel.Dispose(); tabViewModel.TabProperty = random.Next(); // Then Assert.That(propertyChangedTriggered, Is.False); Assert.That(eventArgs, Is.Null); Assert.That(tabControlViewModel.Tabs, Is.Empty); }