public async Task E_Possivel_Invocar_a_Controller_Update()
        {
            var serviceMock = new Mock <IUserService>();
            var nome        = Faker.Name.FullName();
            var email       = Faker.Internet.Email();

            serviceMock.Setup(m => m.Put(It.IsAny <UserDTOUpdate>())).ReturnsAsync(
                new UserUpdateResultDTO
            {
                Id       = Guid.NewGuid(),
                Name     = nome,
                Email    = email,
                UpdateAt = DateTime.UtcNow
            }
                );

            _controller = new UsersController(serviceMock.Object);
            _controller.ModelState.AddModelError("Email", "É um campo obrigatorio");

            var userDtoUpdate = new UserDTOUpdate
            {
                id    = Guid.NewGuid(),
                Name  = nome,
                Email = email,
            };

            var result = await _controller.Put(userDtoUpdate);

            Assert.True(result is BadRequestObjectResult);
            Assert.False(_controller.ModelState.IsValid);
        }
Example #2
0
        public async Task <ActionResult> Put([FromBody] UserDTOUpdate user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); //400 bad request - solicitacao inválida
            }

            try
            {
                var result = await _service.Put(user);

                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (ArgumentException e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
        public async Task E_Possivel_Invocar_a_Controller_Update()
        {
            var serviceMock = new Mock <IUserService>();
            var nome        = Faker.Name.FullName();
            var email       = Faker.Internet.Email();

            serviceMock.Setup(c => c.Put(It.IsAny <UserDTOUpdate>())).ReturnsAsync(
                new UserDTOUpdateResult
            {
                Id       = Guid.NewGuid(),
                Name     = nome,
                Email    = email,
                UpdateAt = DateTime.UtcNow
            }
                );

            _controller = new UsersController(serviceMock.Object);

            var userDtoUpdate = new UserDTOUpdate
            {
                Id    = Guid.NewGuid(),
                Name  = nome,
                Email = email
            };

            var result = await _controller.Put(userDtoUpdate);

            Assert.True(result is OkObjectResult);

            var resultValue = ((OkObjectResult)result).Value as UserDTOUpdateResult;

            Assert.NotNull(resultValue);
            Assert.Equal(userDtoUpdate.Name, resultValue.Name);
            Assert.Equal(userDtoUpdate.Email, resultValue.Email);
        }
Example #4
0
        public async Task <ActionResult> Update([FromBody] UserDTOUpdate user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _service.Put(user);

                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
        public async Task <UserDTOUpdateResult> Put(UserDTOUpdate user)
        {
            var model  = _mapper.Map <UserModel>(user);
            var entity = _mapper.Map <UserEntity>(model);
            var result = await _repository.UpdateAsync(entity);

            return(_mapper.Map <UserDTOUpdateResult>(result));
        }
Example #6
0
        public UserTest()
        {
            IdUsuario            = Guid.NewGuid();
            NomeUsuario          = Faker.Name.FullName();
            EmailUsuario         = Faker.Internet.Email();
            NomeUsuarioAlterado  = Faker.Name.FullName();
            EmailUsuarioAlterado = Faker.Internet.Email();

            for (int i = 0; i < 10; i++)
            {
                var dto = new UserDTO()
                {
                    Id    = Guid.NewGuid(),
                    Name  = Faker.Name.FullName(),
                    Email = Faker.Internet.Email()
                };

                listaUserDto.Add(dto);
            }

            userDto = new UserDTO
            {
                Id    = IdUsuario,
                Name  = NomeUsuario,
                Email = EmailUsuario
            };

            userDTOCreate = new UserDTOCreate
            {
                Name  = NomeUsuario,
                Email = EmailUsuario
            };

            userCreateResult = new UserCreateResultDTO
            {
                Id       = IdUsuario,
                Name     = NomeUsuario,
                Email    = EmailUsuario,
                CreateAt = DateTime.UtcNow
            };

            userDTOUpdate = new UserDTOUpdate
            {
                id    = IdUsuario,
                Name  = NomeUsuarioAlterado,
                Email = EmailUsuarioAlterado
            };

            userUpdateResult = new UserUpdateResultDTO
            {
                Id       = IdUsuario,
                Name     = NomeUsuarioAlterado,
                Email    = EmailUsuarioAlterado,
                UpdateAt = DateTime.UtcNow
            };
        }
        public async Task E_Possivel_Realizar_Crud_Usuario()
        {
            await AdicionarToken();

            _name  = Faker.Name.First();
            _email = Faker.Internet.Email();

            var userDto = new UserDTOCreate()
            {
                Name  = _name,
                Email = _email
            };

            //Post
            var response = await PostJsonAsync(userDto, $"{hostApi}Users", client);

            var postResult = await response.Content.ReadAsStringAsync();

            var registroPost = JsonConvert.DeserializeObject <UserCreateResultDTO>(postResult);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal(_name, registroPost.Name);
            Assert.Equal(_email, registroPost.Email);
            Assert.True(registroPost.Id != default(Guid));

            //Get All
            response = await client.GetAsync($"{hostApi}Users");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            var jsonResult = await response.Content.ReadAsStringAsync();

            var listaFromJson = JsonConvert.DeserializeObject <IEnumerable <UserDTO> >(jsonResult);

            Assert.NotNull(listaFromJson);
            Assert.True(listaFromJson.Count() > 0);
            Assert.True(listaFromJson.Where(r => r.Id == registroPost.Id).Count() == 1);

            var updateUserDto = new UserDTOUpdate()
            {
                id    = registroPost.Id,
                Name  = Faker.Name.FullName(),
                Email = Faker.Internet.Email()
            };

            //PUT
            var stringContent = new StringContent(JsonConvert.SerializeObject(updateUserDto),
                                                  Encoding.UTF8, "application/json");

            response = await client.PutAsync($"{hostApi}Users", stringContent);

            jsonResult = await response.Content.ReadAsStringAsync();

            var registroAtualizado = JsonConvert.DeserializeObject <UserUpdateResultDTO>(jsonResult);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEqual(registroPost.Name, registroAtualizado.Name);
            Assert.NotEqual(registroPost.Email, registroAtualizado.Email);

            //GET Id
            response = await client.GetAsync($"{hostApi}Users/{registroAtualizado.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            jsonResult = await response.Content.ReadAsStringAsync();

            var registroSelecionado = JsonConvert.DeserializeObject <UserDTO>(jsonResult);

            Assert.NotNull(registroSelecionado);
            Assert.Equal(registroSelecionado.Name, registroAtualizado.Name);
            Assert.Equal(registroSelecionado.Email, registroAtualizado.Email);

            //DELETE
            response = await client.DeleteAsync($"{hostApi}Users/{registroSelecionado.Id}");

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            //GET ID depois do DELETE
            response = await client.GetAsync($"{hostApi}Users/{registroSelecionado.Id}");

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }