public async Task UpdateCompany_returns_ArgumentException_on_not_found() { var companyToUpdate = new UpdateCompanyDTO { Id = Guid.NewGuid() }; await Assert.ThrowsAsync <ArgumentException>(() => repository.UpdateCompanyAsync(companyToUpdate)); }
public async Task <bool> UpdateCompanyAsync(UpdateCompanyDTO company) { var entity = await context.Companies.FindAsync(company.Id); if (entity == null) { throw new ArgumentException($"Could not remove company with id {company.Id}, because it does not exist."); } entity.Name = company.Name; await context.SaveChangesAsync(); return(true); }
public async Task UpdateCompany(UpdateCompanyDTO company, long id) { var entry = await _dbContext.Companies.Include(b => b.Employees).FirstOrDefaultAsync(x => x.CompanyId == id); entry.Employees.Clear(); var employees = _mapper.Map <ICollection <Employee> >(company.Employees); entry.Employees = employees; entry.Name = company.Name; entry.EstablishmentYear = company.EstablishmentYear; _dbContext.Companies.Update(entry); await _dbContext.SaveChangesAsync(); }
public async Task UpdateCompany_returns_true_on_updated() { var companyToUpdate = await Context.Companies.FirstAsync(); var nameBeforeUpdate = companyToUpdate.Name; var dto = new UpdateCompanyDTO { Id = companyToUpdate.Id, Name = "Test" }; var actual = await repository.UpdateCompanyAsync(dto); Assert.True(actual); Assert.NotEqual(nameBeforeUpdate, companyToUpdate.Name); }
public async Task Update_returns_500_on_internal_error() { var company = new UpdateCompanyDTO { Name = "Updated Name" }; repository.Setup(r => r.UpdateCompanyAsync(company)).ThrowsAsync(new Exception()); var controller = new CompanyRepositoryController(repository.Object); var actual = await controller.Update(company, true); var actionResult = Assert.IsType <ActionResult <bool> >(actual); var code = Assert.IsType <StatusCodeResult>(actionResult.Result); Assert.Equal(500, code.StatusCode); }
public async Task Update_returns_404_on_not_found() { var company = new UpdateCompanyDTO { Id = Guid.NewGuid() }; repository.Setup(r => r.UpdateCompanyAsync(company)).ThrowsAsync(new ArgumentException()); var controller = new CompanyRepositoryController(repository.Object); var actual = await controller.Update(company, true); var actionResult = Assert.IsType <ActionResult <bool> >(actual); var code = Assert.IsType <StatusCodeResult>(actionResult.Result); Assert.Equal(404, code.StatusCode); }
public async Task Update_returns_200_and_true() { var company = new UpdateCompanyDTO { Name = "New Name" }; repository.Setup(r => r.UpdateCompanyAsync(company)).ReturnsAsync(true); var controller = new CompanyRepositoryController(repository.Object); var actual = await controller.Update(company, true); var actionResult = Assert.IsType <ActionResult <bool> >(actual); var okResult = Assert.IsType <OkObjectResult>(actionResult.Result); var hasBeenUpdated = Assert.IsType <bool>(okResult.Value); Assert.Equal(200, okResult.StatusCode); Assert.True(hasBeenUpdated); }
public async Task <ActionResult <bool> > Update([FromBody] UpdateCompanyDTO company, bool isTest = false) { try { var isUpdated = await repository.UpdateCompanyAsync(company); return(Ok(isUpdated)); } catch (ArgumentException e) { Util.LogError(e, isTest); return(StatusCode(StatusCodes.Status404NotFound)); } catch (Exception e) { Util.LogError(e, isTest); return(StatusCode(StatusCodes.Status500InternalServerError)); } }