From 8c7412232cdda159d0ace29903985e8005ceb8da Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Mon, 15 Feb 2016 14:48:41 +0000 Subject: [PATCH] Seperated testing of null and empty string triggering PropertyChangedEvent. --- .../Data/ExpressionObserverTests_Property.cs | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs b/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs index 7730c18303..ebf98a363e 100644 --- a/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs +++ b/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs @@ -101,10 +101,35 @@ namespace Perspex.Markup.UnitTests.Data var sub = target.Subscribe(x => result.Add(x)); data.Foo = "bar"; + Assert.Equal(new[] { "foo", "bar" }, result); + + sub.Dispose(); + + Assert.Equal(0, data.SubscriptionCount); + } + + [Fact] + public void Should_Trigger_PropertyChanged_On_Null_Or_Empty_String() + { + var data = new Class1 { Bar = "foo" }; + var target = new ExpressionObserver(data, "Bar"); + var result = new List(); + + var sub = target.Subscribe(x => result.Add(x)); + + Assert.Equal(new[] { "foo" }, result); + + data.Bar = "bar"; + + Assert.Equal(new[] { "foo" }, result); + data.RaisePropertyChanged(string.Empty); + + Assert.Equal(new[] { "foo", "bar" }, result); + data.RaisePropertyChanged(null); - Assert.Equal(new[] { "foo", "bar", "bar", "bar" }, result); + Assert.Equal(new[] { "foo", "bar", "bar" }, result); sub.Dispose(); @@ -327,6 +352,13 @@ namespace Perspex.Markup.UnitTests.Data } } + private string _bar; + public string Bar + { + get { return _bar; } + set { _bar = value; } + } + public INext Next { get { return _next; }