public void It_Creates_With_NoValue() { var source = new TaskCompletionSource <TestEntity>(); var property = new DynamicPropertyFromTask <TestEntity>(DefaultPropertyName, _ => source.Task); property.Value.Should().BeNull(); }
public void It_Changes_Value_From_Source() { var source = new TaskCompletionSource <TestEntity>(); var value = new TestEntity(); var property = new DynamicPropertyFromTask <TestEntity>(DefaultPropertyName, _ => source.Task); source.TrySetResult(value); property.Value.Should().Be(value); }
public void It_Doesnt_Set_Value_After_Disposed() { var source = new TaskCompletionSource <TestEntity>(); var value = new TestEntity(); var property = new DynamicPropertyFromTask <TestEntity>(DefaultPropertyName, _ => source.Task); property.Dispose(); source.TrySetResult(value); property.Value.Should().NotBe(value); }
public void It_Raises_ValueChanged() { var source = new TaskCompletionSource <TestEntity>(); var receivedValues = new List <IDynamicProperty>(); var property = new DynamicPropertyFromTask <TestEntity>(DefaultPropertyName, _ => source.Task); property.ValueChanged += OnValueChanged; source.TrySetResult(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 TaskCompletionSource <TestEntity>(); var value = new TestEntity(); var receivedValues = new List <IDynamicProperty>(); var property = new DynamicPropertyFromTask <TestEntity>(DefaultPropertyName, _ => source.Task, value); property.ValueChanged += OnValueChanged; source.TrySetResult(value); receivedValues.Should().BeEmpty(); void OnValueChanged(IDynamicProperty p) { receivedValues.Add(p); } }