Browse Source

Seperated testing of null and empty string triggering PropertyChangedEvent.

pull/422/head
danwalmsley 11 years ago
parent
commit
8c7412232c
  1. 34
      tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs

34
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)); var sub = target.Subscribe(x => result.Add(x));
data.Foo = "bar"; 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<object>();
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); data.RaisePropertyChanged(string.Empty);
Assert.Equal(new[] { "foo", "bar" }, result);
data.RaisePropertyChanged(null); data.RaisePropertyChanged(null);
Assert.Equal(new[] { "foo", "bar", "bar", "bar" }, result); Assert.Equal(new[] { "foo", "bar", "bar" }, result);
sub.Dispose(); 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 public INext Next
{ {
get { return _next; } get { return _next; }

Loading…
Cancel
Save