diff --git a/BrentEdwards.MVVM.Test/BrentEdwards.MVVM.Test.csproj b/BrentEdwards.MVVM.Test/BrentEdwards.MVVM.Test.csproj index c4e8986..489bd7a 100644 --- a/BrentEdwards.MVVM.Test/BrentEdwards.MVVM.Test.csproj +++ b/BrentEdwards.MVVM.Test/BrentEdwards.MVVM.Test.csproj @@ -60,6 +60,7 @@ + diff --git a/BrentEdwards.MVVM.Test/ViewModelBaseTests.cs b/BrentEdwards.MVVM.Test/ViewModelBaseTests.cs new file mode 100644 index 0000000..3349a8c --- /dev/null +++ b/BrentEdwards.MVVM.Test/ViewModelBaseTests.cs @@ -0,0 +1,43 @@ +using System; +using System.Text; +using System.Collections.Generic; +using System.Linq; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.ComponentModel; + +namespace BrentEdwards.MVVM.Test +{ + [TestClass] + public sealed class ViewModelBaseTests + { + private class MockViewModel : ViewModelBase + { + public void TriggerPropertyChanged(string propertyName) + { + NotifyPropertyChanged(propertyName); + } + } + + private List _propertiesChanged; + private void PropertyChanged(object sender, PropertyChangedEventArgs e) + { + _propertiesChanged.Add(e.PropertyName); + } + + [TestMethod] + public void NotifyPropertyChanged() + { + _propertiesChanged = new List(); + + var viewModel = new MockViewModel(); + var propertyName = Guid.NewGuid().ToString(); + + viewModel.PropertyChanged += PropertyChanged; + viewModel.TriggerPropertyChanged(propertyName); + viewModel.PropertyChanged -= PropertyChanged; + + Assert.AreEqual(1, _propertiesChanged.Count); + Assert.IsTrue(_propertiesChanged.Contains(propertyName)); + } + } +} diff --git a/BrentEdwards.MVVM/BrentEdwards.MVVM.csproj b/BrentEdwards.MVVM/BrentEdwards.MVVM.csproj index 84d5b25..b1027e7 100644 --- a/BrentEdwards.MVVM/BrentEdwards.MVVM.csproj +++ b/BrentEdwards.MVVM/BrentEdwards.MVVM.csproj @@ -58,6 +58,7 @@ +