public void Medico_AtualizarMedico_QuandoRetornarSucesso()
        {
            var request  = new AtualizarMedicoRequestBuilder().Build();
            var response = new AtualizarMedicoResponse();

            var medico = new MedicoEntities();

            int id = 1;

            _repositorioMedicos.Setup(repositorio => repositorio.GetId(id)).Returns(medico);

            medico.id = id;

            response.msg.Add("Atualizado com sucesso");
            response.id = medico.id;

            _adapter.Setup(adapter => adapter.converterRequestParaMedico(request)).Returns(medico);
            _repositorioMedicos.Setup(repositorio => repositorio.Update(medico)).Returns(medico.id);

            //Act
            //Chamar as funções
            var result = _useCase.Executar(request, id);


            //Assert
            //As regras dos testes
            response.Should().BeEquivalentTo(result);
        }
        public void Medico_AtualizarMedico_QuandoNomeMenorVinte()
        {
            var request  = new AtualizarMedicoRequestBuilder().withNameLength(10).Build();
            var response = new AtualizarMedicoResponse();

            var medico = new MedicoEntities();

            int id = 1;

            _repositorioMedicos.Setup(repositorio => repositorio.GetId(id)).Returns(medico);

            medico.id = id;

            response.msg.Add("Erro ao atualizar o médico");
            response.erros.Add("Nome deve conter de 3 a 20 caracteres");


            //Act
            //Chamar as funções
            var result = _useCase.Executar(request, id);


            //Assert
            //As regras dos testes
            response.Should().BeEquivalentTo(result);
        }
        public AtualizarMedicoResponse ValidarCamposAtualizarMedico(AtualizarMedicoRequest request)
        {
            var           response = new AtualizarMedicoResponse();
            List <string> erros    = new List <string>();


            if (request.nome.Length < 20 && request.nome.Length > 3)
            {
                erros.Add("Nome deve conter de 3 a 20 caracteres");
            }



            Regex expressao = new Regex(@"(\([0-9]{2}\)|)[0-9]{4,5}-[0-9]{4}");

            //Match(request.telefone, expressao);
            //request.telefone.Length <= 10 ||
            if (!expressao.IsMatch(request.telefone.ToString()))
            {
                erros.Add("Telefone numero de digitos incorretos. Ex. 12345-1234 ");
            }

            if (request.crm.Length != 10)
            {
                erros.Add("CRM deve conter 10 digitos.");
            }

            if (request.especialidade.Length > 40 || request.especialidade.Length < 3)
            {
                erros.Add("Especialidade deve conter 3 a 40 digitos.");
            }

            foreach (var item in erros)
            {
                response.erros.Add(item);
            }


            return(response);
        }
        public void Medico_AtualizarMedico_QuandoRepositorioExcecao()
        {
            var request  = new AtualizarMedicoRequestBuilder().Build();
            var response = new AtualizarMedicoResponse();

            var medico = new MedicoEntities();
            int id     = 1;

            response.msg.Add("Erro ao atualizar o médico");

            medico.id = id;

            _adapter.Setup(adapter => adapter.converterRequestParaMedico(request)).Returns(medico);
            _repositorioMedicos.Setup(repositorio => repositorio.Add(medico)).Throws(new Exception());

            //Act
            //Chamar as funções
            var result = _useCase.Executar(request, id);

            //Assert
            //As regras dos testes
            response.Should().BeEquivalentTo(result);
        }
示例#5
0
        public AtualizarMedicoResponse Executar(AtualizarMedicoRequest request, int id)
        {
            var response  = new AtualizarMedicoResponse();
            var validacao = new AtualizarMedicoRequestValidator();

            try
            {
                var medico = _repositorioMedicos.GetId(id);
                if (medico == null)
                {
                    response.msg.Add("Erro ao atualizar o médico");
                    return(response);
                }

                response = validacao.ValidarCamposAtualizarMedico(request);

                if (response.erros.Count > 0)
                {
                    response.msg.Add("Erro ao atualizar o médico");
                    return(response);
                }


                var medicoAtualizar = _adapter.converterRequestParaMedico(request);

                medicoAtualizar.id = id;
                _repositorioMedicos.Update(medicoAtualizar);
                response.msg.Add("Atualizado com sucesso");
                response.id = medicoAtualizar.id;
                return(response);
            }
            catch (Exception)
            {
                response.msg.Add("Erro ao atualizar o médico");
                return(response);
            }
        }