public void CallApproAppropriateMethodOnFactoryDependingOnVehicleType() { var rallyId = "2019"; var vehicle = new Vehicle { Id = "v1", Type = VehicleType.SportCar }; var vehicleFactoryMock = GetVehicleFactoryWhichReturns(vehicle.Id); var rallyRepo = CommonBuilders.SetUpRepoWithRally( rallyId, CommonBuilders.GetRallyThatAcceptsVehicle(vehicle.Id)); var service = new AddVehicleService(rallyRepo, vehicleFactoryMock.Object); var result = service.AddVehicle(rallyId, vehicle); vehicleFactoryMock.Verify(factory => factory.CreateSportCar(vehicle.Id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())); }
public void ReturnOkWhenRallyExistsAndAcceptsVehicle() { var rallyId = "2019"; var vehicle = new Vehicle { Id = "v1", Type = VehicleType.SportCar }; var vehicleFactoryMock = GetVehicleFactoryWhichReturns(vehicle.Id); var rallyRepo = CommonBuilders.SetUpRepoWithRally( rallyId, CommonBuilders.GetRallyThatAcceptsVehicle(vehicle.Id)); var service = new AddVehicleService(rallyRepo, vehicleFactoryMock.Object); var result = service.AddVehicle(rallyId, vehicle); Assert.True(result.IsSuccess); vehicleFactoryMock.Verify(factory => factory.CreateSportCar(vehicle.Id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())); }