Beispiel #1
0
        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);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
 public async Task <Result> CreateDeveloperAsync([FromBody] DeveloperCreateDto developerDto)
 {
     return(GetResult(await _developerService.CreateDeveloperAsync(developerDto)));
 }