public Vehicle SaveVehicle(Vehicle vehicle) { var vehicleGreaterThanYearSpec = new VehicleIsGreaterThanRequiredYear(); if (!vehicleGreaterThanYearSpec.IsSatisfiedBy(vehicle)) { throw new VehicleNotGreaterThanRequiredYearException(vehicleGreaterThanYearSpec.RequiredYear); } var vehicleVinIsUniqueSpec = new VehicleVinIsUnique(_unitOfWork.Vehicles); if (!vehicleVinIsUniqueSpec.IsSatisfiedBy(vehicle)) { throw new DuplicateVehicleVinException(vehicle.VIN); } vehicle.VIN = vehicle.VIN?.ToUpper(); if (vehicle.Id == 0) { _unitOfWork.Vehicles.Add(vehicle); } _unitOfWork.SaveChanges(); UpdateSalePrice(vehicle.Id); return(vehicle); }
public void VehicleIsGreaterThanRequiredYearSpec_WhenNotSatisfied_ReturnsFalse() { var vehicle = new Vehicle { Year = 1980 }; var spec = new VehicleIsGreaterThanRequiredYear(); var result = spec.IsSatisfiedBy(vehicle); Assert.False(result); }
public void VehicleIsGreaterThanRequiredYearSpec_WhenSatisfied_ReturnsTrue() { var vehicle = new Vehicle { Year = 2000 }; var spec = new VehicleIsGreaterThanRequiredYear(); var result = spec.IsSatisfiedBy(vehicle); Assert.True(result); }