public void ComputadorAppService_BuscarComputadorPorDescricao_RetornoValido()
        {
            // Arrange
            var vm = new ConsultarComputadorViewModel();

            vm.Descricao = "C001";
            var computador = new Computador("C001", "A01");
            var repo       = new Mock <IComputadorRepositorio>();

            repo.Setup(x => x.BuscarPorDescricao(vm.Descricao)).Returns(computador);
            var servico = new Mock <IComputadorServico>();

            servico.Setup(x => x.BuscarPorDescricao(vm.Descricao)).Returns(computador);
            var appServico = new ComputadorAppServico(servico.Object);

            // Act
            var resultado = appServico.BuscarPorDescricao(vm.Descricao);

            // Assert
            Assert.NotNull(resultado);
            Assert.Equal(computador.Descricao, resultado.Descricao);
            Assert.Equal(computador.Andar, resultado.Andar);
            Assert.Equal(computador.Ativo, resultado.Ativo);
            Assert.Equal(computador.Ocorrencias, resultado.Ocorrencias);
            Assert.Equal("OK", resultado.ResultadoTransacao);
        }
Example #2
0
        public HttpResponseMessage BuscarPorDescricao(HttpRequestMessage request)
        {
            ConsultarComputadorViewModel vm = new ConsultarComputadorViewModel();

            try
            {
                vm = request.Content.ReadAsAsync <ConsultarComputadorViewModel>().Result;

                if (vm.ConsultaPorDescricaoEhValida())
                {
                    vm = _appServico.BuscarPorDescricao(vm.Descricao);

                    return(new HttpResponseMessage
                    {
                        Content = new ObjectContent <ConsultarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
                    });
                }
                else
                {
                    vm.ResultadoTransacao = "Os dados informados não são válidos.";

                    return(new HttpResponseMessage()
                    {
                        Content = new ObjectContent <ConsultarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
                    });
                }
            }
            catch (NullReferenceException)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent("Erro no corpo da requisição.")
                });
            }
            catch (ComputadorNaoExisteException ex)
            {
                vm.ResultadoTransacao = ex.Message;

                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new ObjectContent <ConsultarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
                });
            }
            catch (Exception)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent("Erro interno no servidor.")
                });
            }
        }
        public void ConsultaComputadorViewModel_ValidarEntradaPorDescricao_ResultadoValido()
        {
            // Arrange
            var vm = new ConsultarComputadorViewModel();

            vm.Descricao = "C011";

            // Act
            vm.ConsultaPorDescricaoEhValida();

            // Assert
            Assert.NotNull(vm);
            Assert.True(!string.IsNullOrEmpty(vm.Descricao));
            Assert.Equal("C011", vm.Descricao);
        }
        public void ConsultaComputadorViewModel_ValidarEntrada_ResultadoValido()
        {
            // Arrange
            var vm = new ConsultarComputadorViewModel();

            vm.Id = "123";

            // Act
            vm.ConsultaPorIdEhValida();

            // Assert
            Assert.NotNull(vm);
            Assert.True(!string.IsNullOrEmpty(vm.Id));
            Assert.Equal("123", vm.Id);
        }
        public ConsultarComputadorViewModel BuscarPorDescricao(string descricao)
        {
            var computador = _servico.BuscarPorDescricao(descricao);
            ConsultarComputadorViewModel resultado = null;

            if (computador != null)
            {
                resultado = ConsultarComputadorViewModel.Fabrica.Gerar(computador);
            }
            else
            {
                resultado = new ConsultarComputadorViewModel();
                resultado.ResultadoTransacao = "Computador não existe";
            }

            return(resultado);
        }
Example #6
0
        public void ComputadorController_ConsultarPorDescricao_ComputadorNaoExiste()
        {
            // Arrange
            var vm = new ConsultarComputadorViewModel();

            vm.Descricao = "c003";
            var appServico = new Mock <IComputadorAppServico>();

            appServico.Setup(x => x.BuscarPorDescricao(vm.Descricao)).Throws(new ComputadorNaoExisteException());

            // Act
            var response = new ComputadorController(appServico.Object)
                           .BuscarPorDescricao(new HttpRequestMessage
            {
                Content = new ObjectContent <ConsultarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
            }).Content.ReadAsAsync <ConsultarComputadorViewModel>().Result;

            // Assert
            Assert.NotNull(response);
            Assert.Equal(vm.Descricao, response.Descricao);
            Assert.Equal("O computador desejado não existe!", response.ResultadoTransacao);
        }
Example #7
0
        public void ComputadorController_ConsultarPorDescricao_RetornoValido()
        {
            // Arrange
            var vm = new ConsultarComputadorViewModel();

            vm.Descricao          = "C003";
            vm.ResultadoTransacao = "OK";
            var appServico = new Mock <IComputadorAppServico>();

            appServico.Setup(x => x.BuscarPorDescricao(vm.Descricao)).Returns(vm);

            // Act
            var response = new ComputadorController(appServico.Object)
                           .BuscarPorDescricao(new HttpRequestMessage
            {
                Content = new ObjectContent <ConsultarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
            }).Content.ReadAsAsync <ConsultarComputadorViewModel>().Result;

            // Assert
            Assert.NotNull(response);
            Assert.Equal(vm.Descricao, response.Descricao);
            Assert.Equal("OK", response.ResultadoTransacao);
        }