public async Task CreateAsync_WithInvalidModelName_ShouldReturnEmptyModelAndNotInsertAdInDatabase() { // Arrange this.SeedManufacturer(1, SampleManufacturerName); // Act var model = new VehicleCreateServiceModel { ManufacturerId = 1, }; var result = await this.adService.CreateAsync(model); // Assert result .Should() .BeAssignableTo <AdAndVehicleIds>() .And .Match(x => x.As <AdAndVehicleIds>().AdId == 0) .And .Match(x => x.As <AdAndVehicleIds>().VehicleId == 0); this.dbContext .Ads .Should() .BeEmpty(); }
private VehicleCreateServiceModel InitializeValidVehicleCreateModel() { var model = new VehicleCreateServiceModel { ManufacturerId = 1, ModelName = SampleModelName, ExactModelname = SampleExactModelname, EngineHorsePower = SampleEngineHorsePower, FuelTypeId = SampleFuelTypeId, GearingTypeId = SampleGearingTypeId, UserId = SampleUserId, VehicleTypeId = SampleVehicleTypeId, YearOfManufacture = SampleYearOfManufacture }; return(model); }
private VehicleCreateServiceModel InitializeValidVehicleCreateServiceModel() { var model = new VehicleCreateServiceModel { ManufacturerId = 1, ModelName = SampleModelName, EngineHorsePower = SampleEngineHorsePower, FuelConsumption = SampleFuelConsumption, FuelTypeId = SampleFuelTypeId, TransmissionTypeId = SampleTransmissionTypeId, PhoneNumber = SamplePhoneNumber, UserId = SampleUserId, Price = SamplePrice, FeatureIds = new List <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, YearOfProduction = SampleYearOfManufacture, Description = SampleDescription, }; return(model); }
public async Task CreateAsync_WithInvalidModelName_ShouldReturnZeroAndNotAddVehicleToDatabase() { // Arrange this.SeedManufacturer(1, SampleManufacturerName); var model = new VehicleCreateServiceModel { ManufacturerId = 1 }; // Act var result = await this.vehicleService.CreateAsync(model); // Assert result .Should() .Be(0); this.dbContext .Vehicles .Should() .BeEmpty(); }
public async Task <int> CreateAsync(VehicleCreateServiceModel model) { if (model == null) { return(default(int)); } var manufacturerExist = await this.db.Manufacturers.AnyAsync(m => m.Id == model.ManufacturerId); if (!manufacturerExist) { return(default(int)); } var newVehicle = Mapper.Map <Vehicle>(model); newVehicle.Model = await this.db.Models .FirstOrDefaultAsync(m => m.ManufacturerId == model.ManufacturerId && m.Name == model.ModelName); if (newVehicle.Model == null) { return(default(int)); } try { this.ValidateEntityState(newVehicle); await this.db.AddAsync(newVehicle); await this.db.SaveChangesAsync(); } catch { return(default(int)); } return(newVehicle.Id); }
public async Task <AdAndVehicleIds> CreateAsync(VehicleCreateServiceModel model) { if (model == null) { return(new AdAndVehicleIds { AdId = 0, VehicleId = 0, }); } var manufacturerExist = await this.db.Manufacturers.AnyAsync(m => m.Id == model.ManufacturerId); if (!manufacturerExist) { return(new AdAndVehicleIds { AdId = 0, VehicleId = 0, }); } var newVehicle = this.mapper.Map <Vehicle>(model); newVehicle.Model = await this.db.Models .FirstOrDefaultAsync(m => m.ManufacturerId == model.ManufacturerId && m.Name == model.ModelName); if (newVehicle.Model == null) { return(new AdAndVehicleIds { AdId = 0, VehicleId = 0, }); } var vehicleFeatures = new List <VehicleFeature>(); foreach (var modelFeatureId in model.FeatureIds) { var feature = new VehicleFeature { FeatureId = modelFeatureId, Vehicle = newVehicle }; vehicleFeatures.Add(feature); } var newAd = new Ad { CreationDate = DateTime.UtcNow, Vehicle = newVehicle, UserId = model.UserId, PhoneNumber = model.PhoneNumber }; try { this.ValidateEntityState(newVehicle); this.ValidateEntityState(newAd); await this.db.AddAsync(newAd); await this.db.AddRangeAsync(vehicleFeatures); await this.db.SaveChangesAsync(); } catch { return(new AdAndVehicleIds { AdId = 0, VehicleId = 0, }); } return(new AdAndVehicleIds { AdId = newAd.Id, VehicleId = newVehicle.Id, }); }