public async Task CreateAsync_WithEmptyNameShouldThrowArgumentNullException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var asphaltBaseService = new AsphaltBaseService(context); var createAsphaltBaseServiceModel = new CreateAsphaltBaseServiceModel(); var asphaltBaseName = " "; createAsphaltBaseServiceModel.Name = asphaltBaseName; await Assert.ThrowsAsync <ArgumentNullException>(async() => { await asphaltBaseService.CreateAsync(createAsphaltBaseServiceModel); }); }
public async Task CreateAsync_WithOverMaxNameLengthShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var asphaltBaseService = new AsphaltBaseService(context); var createAsphaltBaseServiceModel = new CreateAsphaltBaseServiceModel(); var asphaltBaseName = "qwertyuiop qwertyuiop qwertyuiop qwertyuiop qwertyuiop"; createAsphaltBaseServiceModel.Name = asphaltBaseName; var message = "Asphalt base's name cannot be more than 50 characters."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await asphaltBaseService.CreateAsync(createAsphaltBaseServiceModel); }); Assert.Equal(message, exception.Message); }
public async Task CreateAsync_ShouldSuccessfullyCreate() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var asphaltBaseService = new AsphaltBaseService(context); var createAsphaltBaseServiceModel = new CreateAsphaltBaseServiceModel(); var asphaltBaseName = "ABN 1"; createAsphaltBaseServiceModel.Name = asphaltBaseName; await asphaltBaseService.CreateAsync(createAsphaltBaseServiceModel); var expectedResult = asphaltBaseName; var actualResult = asphaltBaseService .All() .First() .Name; Assert.True(expectedResult == actualResult); }
public async Task CreateAsync_WithExistingNameShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var asphaltBaseService = new AsphaltBaseService(context); var createAsphaltBaseServiceModel = new CreateAsphaltBaseServiceModel(); var asphaltBaseName = "ABN 1"; createAsphaltBaseServiceModel.Name = asphaltBaseName; var message = "Asphalt base's name already exists."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await asphaltBaseService.CreateAsync(createAsphaltBaseServiceModel); }); Assert.Equal(message, exception.Message); }
public async Task CreateAsync(CreateAsphaltBaseServiceModel createAsphaltBaseServiceModel) { var asphaltBase = AutoMapperConfig.MapperInstance.Map <AsphaltBase>(createAsphaltBaseServiceModel); if (string.IsNullOrWhiteSpace(asphaltBase.Name)) { throw new ArgumentNullException(EmptyAsphaltBaseErrorMessage); } if (await this.context.AsphaltBases.AnyAsync(ab => ab.Name == asphaltBase.Name)) { throw new InvalidOperationException(AsphaltBaseExistErrorMessage); } if (asphaltBase.Name.Length > AttributesConstraints.AsphaltBaseNameMaxLength) { throw new InvalidOperationException(string.Format(AsphaltBaseNameMaxLengthErrorMessage, AttributesConstraints.AsphaltBaseNameMaxLength)); } await this.context.AsphaltBases.AddAsync(asphaltBase); await this.context.SaveChangesAsync(); }