public async Task EditAsync_ShouldSuccessfullyEdit() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var asphaltBaseService = new AsphaltBaseService(context); var editAsphaltBaseServiceModel = new EditAsphaltBaseServiceModel(); var asphaltBaseId = 1; var asphaltBaseName = "ABN 3"; editAsphaltBaseServiceModel.Id = asphaltBaseId; editAsphaltBaseServiceModel.Name = asphaltBaseName; await asphaltBaseService.EditAsync(editAsphaltBaseServiceModel); var expectedResult = asphaltBaseName; var actualResult = asphaltBaseService .All() .First() .Name; Assert.True(expectedResult == actualResult); }
public async Task EditAsync(EditAsphaltBaseServiceModel editAsphaltBaseServiceModel) { var asphaltBase = await this.context .AsphaltBases .FindAsync(editAsphaltBaseServiceModel.Id); if (asphaltBase == null) { throw new ArgumentNullException(string.Format(InvalidAsphaltBaseIdErrorMessage, editAsphaltBaseServiceModel.Id)); } if (string.IsNullOrWhiteSpace(editAsphaltBaseServiceModel.Name)) { throw new ArgumentNullException(EmptyAsphaltBaseErrorMessage); } if (await this.context.AsphaltBases.AnyAsync(ab => ab.Name == editAsphaltBaseServiceModel.Name)) { throw new InvalidOperationException(AsphaltBaseExistErrorMessage); } if (editAsphaltBaseServiceModel.Name.Length > AttributesConstraints.AsphaltBaseNameMaxLength) { throw new InvalidOperationException(string.Format(AsphaltBaseNameMaxLengthErrorMessage, AttributesConstraints.AsphaltBaseNameMaxLength)); } asphaltBase.Name = editAsphaltBaseServiceModel.Name; await this.context.SaveChangesAsync(); }
public async Task EditAsync_WithNonExistingIdShouldThrowArgumentNullException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var asphaltBaseService = new AsphaltBaseService(context); var editAsphaltBaseServiceModel = new EditAsphaltBaseServiceModel(); editAsphaltBaseServiceModel.Id = 3; await Assert.ThrowsAsync <ArgumentNullException>(async() => { await asphaltBaseService.EditAsync(editAsphaltBaseServiceModel); }); }
public async Task EditAsync_WithOverMaxNameLengthShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var asphaltBaseService = new AsphaltBaseService(context); var editAsphaltBaseServiceModel = new EditAsphaltBaseServiceModel(); var asphaltBaseName = "qwertyuiop qwertyuiop qwertyuiop qwertyuiop qwertyuiop"; editAsphaltBaseServiceModel.Name = asphaltBaseName; editAsphaltBaseServiceModel.Id = 1; var message = "Asphalt base's name cannot be more than 50 characters."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await asphaltBaseService.EditAsync(editAsphaltBaseServiceModel); }); Assert.Equal(message, exception.Message); }
public async Task EditAsync_WithExistingNameShouldThrowInvalidOperationException() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); await this.SeedDataAsync(context); var asphaltBaseService = new AsphaltBaseService(context); var editAsphaltBaseServiceModel = new EditAsphaltBaseServiceModel(); var asphaltBaseName = "ABN 2"; editAsphaltBaseServiceModel.Name = asphaltBaseName; editAsphaltBaseServiceModel.Id = 1; var message = "Asphalt base's name already exists."; var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => { await asphaltBaseService.EditAsync(editAsphaltBaseServiceModel); }); Assert.Equal(message, exception.Message); }