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>()));
        }