public void It_Creates_With_NoValue() { var source = new Subject <TestEntity>(); var property = new DynamicPropertyFromObservable <TestEntity>(DefaultPropertyName, source); property.Value.Should().BeNull(); }
public void It_Changes_Value_From_Source() { var source = new Subject <TestEntity>(); var value = new TestEntity(); var property = new DynamicPropertyFromObservable <TestEntity>(DefaultPropertyName, source); source.OnNext(value); property.Value.Should().Be(value); }
public void It_Doesnt_Set_Value_After_Disposed() { var source = new Subject <TestEntity>(); var value = new TestEntity(); var property = new DynamicPropertyFromObservable <TestEntity>(DefaultPropertyName, source); property.Dispose(); source.OnNext(value); property.Value.Should().NotBe(value); }
public void It_Raises_ValueChanged() { var source = new Subject <TestEntity>(); var receivedValues = new List <IDynamicProperty>(); var property = new DynamicPropertyFromObservable <TestEntity>(DefaultPropertyName, source); property.ValueChanged += OnValueChanged; source.OnNext(new TestEntity()); receivedValues.Count().Should().Be(1); receivedValues[0].Should().Be(property); void OnValueChanged(IDynamicProperty p) { receivedValues.Add(p); } }
public void It_Doesnt_Raise_ValueChanged_For_SameValue() { var source = new Subject <TestEntity>(); var value = new TestEntity(); var receivedValues = new List <IDynamicProperty>(); var property = new DynamicPropertyFromObservable <TestEntity>(DefaultPropertyName, source, value); property.ValueChanged += OnValueChanged; source.OnNext(value); receivedValues.Should().BeEmpty(); void OnValueChanged(IDynamicProperty p) { receivedValues.Add(p); } }