public void Reactive_can_be_lazy_initialized() { // Arrange const string expected = "hey"; var message = Reactive.OfLazy(() => expected); // Act // Assert message.Value.Should().Be(expected); }
public void Can_silently_assign_value() { // Arrange var message = Reactive.OfLazy(() => "hey"); // Act const string newValue = "wow"; message.SetValueSilently(newValue); // Assert message.Value.Should().Be(newValue); }
public void When_value_silently_assigned_then_reactive_should_not_raise_PropertyChanged_event() { // Arrange var message = Reactive.OfLazy(() => "hey"); var raised = false; message.PropertyChanged += (sender, args) => raised = true; // Act message.SetValueSilently("wow"); // Assert raised.Should().BeFalse(); }
public void When_I_get_and_set_value_after_that_then_set_should_not_be_locked() { // Arrange var counter = Reactive.OfLazy( () => { Thread.Sleep(200); return(1); }); // Act var first = counter.Value; counter.Value = 2; // Assert first.Should().Be(1); counter.Value.Should().Be(2); }