public void MoveUpTest_ReordersProjects(int projectIdToReorder, int newPosition, List <Project> expected)
        {
            var projects         = SetupBasicProjectData();
            var projectToReorder = projects.First(p => p.ID == projectIdToReorder);

            var sut = new ProjectOrderService(new ProjectRepositoryFake(projects));

            sut.MoveUp(projectToReorder, newPosition);

            projects.Should().BeEquivalentTo(expected);
        }
        public void MoveUp_InvalidPosition_ThrowsException(int newPosition)
        {
            var projects         = SetupBasicProjectData();
            var projectToReorder = projects.First(p => p.ID == 3);

            var sut = new ProjectOrderService(new ProjectRepositoryFake(projects));

            Action actual = () => sut.MoveUp(projectToReorder, newPosition);

            actual.Should().ThrowExactly <ArgumentException>("Invalid position");
        }