public void Should_Move_Next()
    {
        //Arrange
        var      items    = new[] { new object(), new object(), new object() };
        var      view     = new CollectionView(items);
        var      expected = items[1];
        ICommand command  = new MoveCurrentToNextCommand(view);

        //Act
        command.Execute(null);
        //Assert
        var actual = view.CurrentItem;

        actual.Should().Be(expected);
    }
    public void Should_Move_Next()
    {
        //Arrange
        var      items    = new[] { new object(), new object(), new object() };
        var      view     = new CollectionView(items);
        var      expected = items[1];
        bool     changed  = false;
        ICommand command  = new MoveCurrentToNextCommand(view);

        command.CanExecuteChanged += delegate {
            changed = true;
        };
        //Act
        command.Execute(null);
        //Assert
        var actual = view.CurrentItem;

        actual.Should().Be(expected);
        changed.Should().BeTrue();
    }