Example #1
0
        public void ComputadorController_DesativarComputador_FoiDesativado()
        {
            // Arrange
            var vm         = new DesativarComputadorViewModel("123");
            var computador = new Computador("C001", "A01");

            computador.Id = "123";
            var servico = new Mock <IComputadorServico>();

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

            // Act
            var response = new ComputadorController(appServico)
                           .DesativarComputador(new HttpRequestMessage
            {
                Content = new ObjectContent <DesativarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
            });

            // Assert
            Assert.True(vm.EhValido());
            Assert.NotNull(computador);
            Assert.Equal(vm.Id, computador.Id);
            Assert.True(computador.Ativo);
            Assert.NotNull(response);
            Assert.NotNull(response.Content);
            Assert.Equal("O computador foi desativado.", response.Content.ReadAsStringAsync().Result);
        }
        public void Desativar(DesativarComputadorViewModel computadorVm)
        {
            var computador = _servico.Buscar(computadorVm.Id);

            if (computador != null)
            {
                _servico.Desativar(computador);
            }
        }
Example #3
0
        public HttpResponseMessage DesativarComputador(HttpRequestMessage request)
        {
            try
            {
                DesativarComputadorViewModel vm = request.Content.ReadAsAsync <DesativarComputadorViewModel>().Result;

                if (vm.EhValido())
                {
                    _appServico.Desativar(vm);

                    return(new HttpResponseMessage
                    {
                        Content = new StringContent("O computador foi desativado.")
                    });
                }
                else
                {
                    return new HttpResponseMessage
                           {
                               Content = new StringContent("Erro nos dados enviados ao servidor.")
                           }
                };
            }
            catch (NullReferenceException)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent("Você deve informar o id de um computador.")
                });
            }
            catch (ComputadorNaoExisteException ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
            catch (ComputadorEmUsoException ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
            catch (Exception)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent("Erro interno no servidor.")
                });
            }
        }
Example #4
0
        public void DesativarComputadorViewModel_ValidarDados_RetornoValido()
        {
            // Arrange
            var vm = new DesativarComputadorViewModel("123");

            // Act
            vm.EhValido();

            // Assert
            Assert.True(!string.IsNullOrEmpty(vm.Id.Trim()));
        }
Example #5
0
        public void ComputadorController_DesativarComputador_ComputadorJaEstaEmUso()
        {
            // Arrange
            var vm         = new DesativarComputadorViewModel("123");
            var appService = new Mock <IComputadorAppServico>();

            appService.Setup(x => x.Desativar(vm))
            .Throws(new ComputadorEmUsoException("O computador que você tentou desativar está em uso."));

            // Act
            var response = new ComputadorController(appService.Object)
                           .DesativarComputador(new HttpRequestMessage
            {
                Content = new ObjectContent <DesativarComputadorViewModel>(vm, new JsonMediaTypeFormatter())
            }).Content.ReadAsStringAsync().Result;

            // Assert
            Assert.NotNull(response);
            Assert.Equal("O computador que você tentou desativar está em uso.", response);
        }
        public void ComputadorAppService_DesativarComputadorNaoLiberado_RetornarException()
        {
            // Arrange
            var vm         = new DesativarComputadorViewModel("123");
            var computador = new Computador("C001", "A01");

            computador.Id = vm.Id;
            var repo = new Mock <IComputadorRepositorio>();

            repo.Setup(x => x.Desativar(computador));
            var servico = new Mock <IComputadorServico>();

            servico.Setup(x => x.Buscar(computador.Id)).Returns(computador);
            servico.Setup(x => x.Desativar(computador))
            .Throws(new ComputadorEmUsoException("Não é possível desativar um computador em uso!"));
            var appServico = new ComputadorAppServico(servico.Object);

            // Act & Assert
            var ex = Assert.Throws <ComputadorEmUsoException>(() => appServico.Desativar(vm));

            Assert.NotNull(ex);
            Assert.Equal("Não é possível desativar um computador em uso!", ex.Message);
        }