public async Task <Result> CreateDeveloperAsync(DeveloperCreateDto developerDto) { var existLogin = await _developerRepository.ExistByLoginAsync(developerDto.Login); if (existLogin) { return(new Result(Status.Conflict, $"Developer with {nameof(developerDto.Login)} already exist")); } var validCpf = await _mockyService.ValidateCPFAsync(developerDto.CPF); if (!validCpf.Success) { return(new Result(validCpf.Status, validCpf.ErrorMessages)); } if (!validCpf.Data) { return(new Result(Status.Invalid, $"Parameter {nameof(developerDto.CPF)} is not valid")); } var developer = new Developer( id: developerDto.Id, name: developerDto.Name, login: developerDto.Login, cpf: developerDto.CPF, password: developerDto.Password ); await _developerRepository.CreateAsync(developer); return(new Result()); }
public ActionResult <DeveloperReadDto> CreateDeveloper(DeveloperCreateDto developerCreateDto) { var developerModel = _mapper.Map <Developer>(developerCreateDto); _repository.CreateDeveloper(developerModel); _repository.SaveChanges(); var developerReadDto = _mapper.Map <DeveloperReadDto>(developerModel); return(CreatedAtRoute(nameof(GetDeveloperById), new { developerId = developerReadDto.Id }, developerReadDto)); }
public async void CreateDeveloperTest() { var developerDto = new DeveloperCreateDto { Id = Guid.NewGuid(), Login = RandomHelper.RandomString(), Name = RandomHelper.RandomString(), Password = RandomHelper.RandomNumbers(), CPF = RandomHelper.RandomNumbers(11) }; var(status, result) = await Request.PostAsync <ResultTest>(Uri, developerDto); var developerDb = await DbContext.Developers.FindAsync(developerDto.Id); Assert.Equal(Status.Success, status); Assert.True(result.Success); Assert.Equal(developerDto.Login, developerDb.Login); Assert.Equal(developerDto.Name, developerDb.Name); Assert.Equal(developerDto.CPF, developerDb.CPF); }
public async void CreateDeveloperTest( Status expectedStatus, bool validCPF = false ) { var developerDto = new DeveloperCreateDto { Name = RandomHelper.RandomString(), Login = RandomHelper.RandomString(), Password = RandomHelper.RandomNumbers(), CPF = RandomHelper.RandomNumbers(11) }; var developersPersisted = new List <Developer>(); _developerRepository.Setup(d => d.CreateAsync(Capture.In(developersPersisted))); _developerRepository.Setup(d => d.ExistByLoginAsync(developerDto.Login, default)) .ReturnsAsync(expectedStatus == Status.Conflict); _mockyRepository.Setup(m => m.ValidateCPFAsync(developerDto.CPF)) .ReturnsAsync(new Result <bool>(validCPF)); var service = new DeveloperService(_developerRepository.Object, _workRepository.Object, _mockyRepository.Object); var result = await service.CreateDeveloperAsync(developerDto); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == Status.Success) { _developerRepository.Verify(d => d.CreateAsync(It.IsAny <Developer>()), Times.Once); _mockyRepository.Verify(d => d.ValidateCPFAsync(developerDto.CPF), Times.Once); var developer = developersPersisted.Single(); Assert.Equal(developerDto.Name, developer.Name); Assert.Equal(developerDto.Login, developer.Login); Assert.Equal(developerDto.CPF, developer.CPF); Assert.Equal(MD5Crypto.Encode(developerDto.Password), developer.PasswordHash); } else { _developerRepository.Verify(d => d.CreateAsync(It.IsAny <Developer>()), Times.Never); } }
public async Task <Result> CreateDeveloperAsync([FromBody] DeveloperCreateDto developerDto) { return(GetResult(await _developerService.CreateDeveloperAsync(developerDto))); }