public void AndRepositoryFails_ThenThrowsBusinessServicesException() { _vehicleRepo .Setup(r => r.GetVehicle(UserId, It.IsAny<int>())) .Returns(new Vehicle()); _vehicleRepo .Setup(b => b.Update(It.IsAny<Vehicle>())) .Throws(new InvalidOperationException()); var newOrder = new[] {3, 2, 1}; var handler = new UpdateVehicleSortOrder(_vehicleRepo.Object); var exception = Assert.Throws<BusinessServicesException>(() => handler.Execute(UserId, newOrder)); Assert.IsType<InvalidOperationException>(exception.InnerException); }
public void ThenUpdatesSortOrderForEachVehicle() { var vehicleOne = new Vehicle {VehicleId = 1, Name = "oldName", SortOrder = 0}; var vehicleTwo = new Vehicle {VehicleId = 2, Name = "oldName", SortOrder = 1}; var vehicleThree = new Vehicle {VehicleId = 3, Name = "oldName", SortOrder = 2}; _vehicleRepo.Setup(vr => vr.GetVehicle(It.IsAny<int>(), 1)).Returns(vehicleOne); _vehicleRepo.Setup(vr => vr.GetVehicle(It.IsAny<int>(), 2)).Returns(vehicleTwo); _vehicleRepo.Setup(vr => vr.GetVehicle(It.IsAny<int>(), 3)).Returns(vehicleThree); var newOrder = new[] {3, 2, 1}; var handler = new UpdateVehicleSortOrder(_vehicleRepo.Object); handler.Execute(UserId, newOrder); Assert.Equal(2, vehicleOne.SortOrder); Assert.Equal(1, vehicleTwo.SortOrder); Assert.Equal(0, vehicleThree.SortOrder); }
public void ThenDelegatesToVehicleRepositoryForEachVehicle() { var vehicleOne = new Vehicle {VehicleId = 1, Name = "oldName", SortOrder = 0}; var vehicleTwo = new Vehicle {VehicleId = 2, Name = "oldName", SortOrder = 1}; var vehicleThree = new Vehicle {VehicleId = 3, Name = "oldName", SortOrder = 2}; _vehicleRepo.Setup(r => r.GetVehicle(It.IsAny<int>(), 1)).Returns(vehicleOne); _vehicleRepo.Setup(r => r.GetVehicle(It.IsAny<int>(), 2)).Returns(vehicleTwo); _vehicleRepo.Setup(r => r.GetVehicle(It.IsAny<int>(), 3)).Returns(vehicleThree); var newOrder = new[] {3, 2, 1}; var handler = new UpdateVehicleSortOrder(_vehicleRepo.Object); handler.Execute(UserId, newOrder); _vehicleRepo.Verify(r => r.Update(vehicleOne), Times.Once()); _vehicleRepo.Verify(r => r.Update(vehicleTwo), Times.Once()); _vehicleRepo.Verify(r => r.Update(vehicleThree), Times.Once()); }