示例#1
0
        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);
        }
示例#2
0
        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)));
        }
示例#3
0
        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)));
        }
示例#4
0
        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);
        }