예제 #1
0
 public async Task UpdateCompany_returns_ArgumentException_on_not_found()
 {
     var companyToUpdate = new UpdateCompanyDTO {
         Id = Guid.NewGuid()
     };
     await Assert.ThrowsAsync <ArgumentException>(() => repository.UpdateCompanyAsync(companyToUpdate));
 }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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));
            }
        }