Exemple #1
0
        public void CanExecute_ShouldReturnCorrectValue(
            IReactiveValue<object> value,
            bool canExecute,
            object arg)
        {
            //arrange
            var sut = new ReactiveMvvmCommand<object, object>(o => value, canExecutePredicate: o => canExecute);
            //act
            var actual = sut.CanExecute(arg);

            //assert
            actual.Should().Be(canExecute);
        }
Exemple #2
0
        public void CanExecute_ShouldReturnCorrectValue(
            IReactiveValue <object> value,
            bool canExecute,
            object arg)
        {
            //arrange
            var sut = new ReactiveMvvmCommand <object, object>(o => value, canExecutePredicate: o => canExecute);
            //act
            var actual = sut.CanExecute(arg);

            //assert
            actual.Should().Be(canExecute);
        }
Exemple #3
0
        public void CanExecute_AfterExecutingCommand_ShouldBePreviousState(
            object obj)
        {
            //arrange
            var value = ReactiveValue.Return(obj, ImmediateScheduler.Instance);
            var sut   = new ReactiveMvvmCommand <object, object>(_ => value, canExecutePredicate: o => false);

            sut.Execute(null);

            //act
            var actual = sut.CanExecute(null);

            //assert
            actual.Should().BeFalse();
        }
Exemple #4
0
        public void CanExecute_WhenExecutingCommand_ShouldBeFalse(
            object obj)
        {
            //arrange
            var canExecuteValues = new List <bool>();
            var value            = ReactiveValue.Return(obj, ImmediateScheduler.Instance);
            var sut = new ReactiveMvvmCommand <object, object>(_ => value);

            sut.CanExecuteChanged += (sender, args) => canExecuteValues.Add(sut.CanExecute(null));

            //act
            sut.Execute(null);

            //assert
            canExecuteValues.First().Should().BeFalse();
        }
Exemple #5
0
        public void CanExecute_ShouldBeCalledWithArg(
            IReactiveValue <object> value,
            object arg)
        {
            //arrange
            object actual = null;
            var    sut    = new ReactiveMvvmCommand <object, object>(o => value, canExecutePredicate: o =>
            {
                actual = o;
                return(true);
            });

            //act
            sut.CanExecute(arg);

            //assert
            actual.Should().Be(arg);
        }
Exemple #6
0
        public void CanExecute_ShouldBeCalledWithArg(
            IReactiveValue<object> value,
            object arg)
        {
            //arrange
            object actual = null;
            var sut = new ReactiveMvvmCommand<object, object>(o => value, canExecutePredicate: o =>
            {
                actual = o;
                return true;
            });

            //act
            sut.CanExecute(arg);

            //assert
            actual.Should().Be(arg);
        }
Exemple #7
0
        public void CanExecute_AfterExecutingCommand_ShouldBePreviousState(
            object obj)
        {
            //arrange
            var value = ReactiveValue.Return(obj, ImmediateScheduler.Instance);
            var sut = new ReactiveMvvmCommand<object, object>(_ => value, canExecutePredicate: o => false);
            sut.Execute(null);

            //act
            var actual = sut.CanExecute(null);

            //assert
            actual.Should().BeFalse();
        }
Exemple #8
0
        public void CanExecute_WhenExecutingCommand_ShouldBeFalse(
            object obj)
        {
            //arrange
            var canExecuteValues = new List<bool>();
            var value = ReactiveValue.Return(obj, ImmediateScheduler.Instance);
            var sut = new ReactiveMvvmCommand<object, object>(_ => value);
            sut.CanExecuteChanged += (sender, args) => canExecuteValues.Add(sut.CanExecute(null));

            //act
            sut.Execute(null);

            //assert
            canExecuteValues.First().Should().BeFalse();
        }