public void DeveAtualizarPessoaEInserirNovoTelefone()
        {
            var pessoaRepository = Substitute.For <PessoaRepository>((ISession)null);

            pessoaRepository.Atualizar(Arg.Any <Pessoa>());

            var pessoaEncontrada = PessoaEncontrada();

            pessoaRepository.PorId(1).Returns(pessoaEncontrada);

            var pessoaDto = PessoaDto();

            pessoaDto.Telefones.Add(new TelefoneDTO
            {
                Numero = "444"
            });

            var mapper = Substitute.For <IMapper>();

            mapper.Map <Telefone>(pessoaDto.Telefones[0])
            .Returns(new Telefone
            {
                Numero = "444"
            });

            var pessoaNegocio = new PessoaNegocio(pessoaRepository, mapper);

            pessoaNegocio.Atualizar(pessoaDto);

            pessoaRepository.Received(1).Atualizar(pessoaEncontrada);
        }
        public void DeveLancarExcecaoAoTentarAtualizarPessoaInexistente()
        {
            var pessoaRepository = Substitute.For <PessoaRepository>((ISession)null);

            pessoaRepository.PorId(1).Returns((Pessoa)null);

            var pessoaNegocio = new PessoaNegocio(pessoaRepository, null);

            Assert.Throws <PessoaNaoEncontradaException>(() => pessoaNegocio.Atualizar(PessoaDto()));
        }
        // PUT: api/Pessoas/5
        public IHttpActionResult Put(int id, [FromBody] PessoaDTO pessoa)
        {
            if (id <= 0)
            {
                return(BadRequest("Informe um id válido"));
            }

            try {
                _pessoaNegocio.Atualizar(pessoa);
                return(Ok());
            } catch (PessoaNaoEncontradaException) {
                return(NotFound());
            }
        }
        public void DeveAtualizarPessoa()
        {
            var pessoaRepository = Substitute.For <PessoaRepository>((ISession)null);

            pessoaRepository.Atualizar(Arg.Any <Pessoa>());

            var pessoaEncontrada = PessoaEncontrada();

            pessoaRepository.PorId(1).Returns(pessoaEncontrada);

            var pessoaNegocio = new PessoaNegocio(pessoaRepository, null);

            var pessoaDto = PessoaDto();

            pessoaNegocio.Atualizar(pessoaDto);

            pessoaRepository.Received(1).Atualizar(pessoaEncontrada);
        }