public void Value_WhenGivenANullDependency_ThrowsArgumentNullException() { MutableDependency <int> dependency = default; var exception = Assert.Throws <ArgumentNullException>(() => D.Value(dependency, default)); Assert.Equal(nameof(dependency), exception.ParamName); }
public void Set_WhenGivenADistinctValue_RaisesTheSweepInvalidatedEventOnce(int value) { var d = new MutableDependency <int>(value); var raised = 0; d.SweepInvalidated += (sender, args) => Interlocked.Increment(ref raised); D.Set(D.Value(d, unchecked (value + 1))); Assert.Equal(1, raised); }
public void Set_WhenGivenAnEqualValue_DoesNotRaiseTheMarkInvalidatedEvent() { var d = new MutableDependency <string>("OK", StringComparer.OrdinalIgnoreCase); var raised = 0; d.MarkInvalidated += (sender, args) => Interlocked.Increment(ref raised); D.Set(D.Value(d, "ok")); Assert.Equal(0, raised); Assert.Equal("OK", d.Value); }
public void Set_WhenGivenADistinctValue_RaisesMarkBeforeSweep(int value) { var d = new MutableDependency <int>(value); var order = 1; var marked = 0; var swept = 0; d.MarkInvalidated += (sender, args) => marked = order++; d.SweepInvalidated += (sender, args) => swept = order++; D.Set(D.Value(d, unchecked (value + 1))); Assert.True(swept > marked); }
public void ctor_WhenGivenDefaults_ReturnsAMutableDependencyWithThisDefaultValue() { var d = new MutableDependency <int>(); Assert.Equal(default, d.Value);
public void ctor_WhenGivenASpecificValue_ReturnsAMutableDependencyWithTheSpecifiedValue(int value) { var d = new MutableDependency <int>(value); Assert.Equal(value, d.Value); }