public async Task CreateAsync_WithEmptyNameShouldThrowArgumentNullException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var truckService = new TruckService(context); var createTruckServiceModel = new CreateTruckServiceModel(); var truckRegistrationNumber = " "; createTruckServiceModel.RegistrationNumber = truckRegistrationNumber; await Assert.ThrowsAsync <ArgumentNullException>(async() => { await truckService.CreateAsync(createTruckServiceModel); }); }
public async Task CreateAsync_WithOverMaxNameLengthShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var truckService = new TruckService(context); var createTruckServiceModel = new CreateTruckServiceModel(); var truckRegistrationNumber = "qwertyuiop qwertyuiop qwertyuiop qwertyuiop qwertyuiop"; createTruckServiceModel.RegistrationNumber = truckRegistrationNumber; var message = "Truck's Registration number cannot be more than 8 characters."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await truckService.CreateAsync(createTruckServiceModel); }); Assert.Equal(message, exception.Message); }
public async Task CreateAsync_ShouldSuccessfullyCreate() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var truckService = new TruckService(context); var createTruckServiceModel = new CreateTruckServiceModel(); var truckRegistrationNumber = "TRN 1"; createTruckServiceModel.RegistrationNumber = truckRegistrationNumber; await truckService.CreateAsync(createTruckServiceModel); var expectedResult = truckRegistrationNumber; var actualResult = truckService .All() .First() .RegistrationNumber; Assert.True(expectedResult == actualResult); }
public async Task CreateAsync_WithExistingNameShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var truckService = new TruckService(context); var createTruckServiceModel = new CreateTruckServiceModel(); var truckRegistrationNumber = "TRN 1"; createTruckServiceModel.RegistrationNumber = truckRegistrationNumber; var message = "Truck's Registration number already exists."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await truckService.CreateAsync(createTruckServiceModel); }); Assert.Equal(message, exception.Message); }
public async Task CreateAsync(CreateTruckServiceModel createTruckServiceModel) { var truck = AutoMapperConfig.MapperInstance.Map <Truck>(createTruckServiceModel); if (string.IsNullOrWhiteSpace(truck.RegistrationNumber)) { throw new ArgumentNullException(EmptyTruckErrorMessage); } if (await this.context.Trucks.AnyAsync(t => t.RegistrationNumber == truck.RegistrationNumber)) { throw new InvalidOperationException(TruckExistErrorMessage); } if (truck.RegistrationNumber.Length > AttributesConstraints.TruckRegistrationNumberMaxLength) { throw new InvalidOperationException(string.Format(TruckRegistrationNumberMaxLengthErrorMessage, AttributesConstraints.TruckRegistrationNumberMaxLength)); } await this.context.Trucks.AddAsync(truck); await this.context.SaveChangesAsync(); }