示例#1
0
        public void Reactive_can_be_lazy_initialized()
        {
            // Arrange
            const string expected = "hey";
            var          message  = Reactive.OfLazy(() => expected);

            // Act
            // Assert
            message.Value.Should().Be(expected);
        }
示例#2
0
        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);
        }
示例#3
0
        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();
        }
示例#4
0
        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);
        }