public void ComputadorAppService_InformarLiberacaoDoComputador_ComputadorNaoExiste()
        {
            // Arrange
            var vm = new LiberarComputadorViewModel();

            vm.DescricaoComputador = "C001";
            var computador = new Computador("C001", "A01");

            computador.Ocorrencias.Add(Ocorrencia.OcorrenciaFabrica.ComputadorEmUso());
            var repo = new Mock <IComputadorRepositorio>();

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

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

            // Act
            vm = appServico.LiberarComputador(vm);

            // Assert
            Assert.Equal(string.Format("O computador {0} não existe.", vm.DescricaoComputador), vm.Resultado);
            Assert.Equal("Computador não existe", appServico.BuscarPorDescricao(vm.DescricaoComputador).ResultadoTransacao);
        }
        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);
        }
        public void ComputadorAppService_BuscarComputadorPorId_ValidarRetorno()
        {
            // Arrange
            var computador = new Computador("C001", "A01");

            computador.Id = "123";
            computador.Ocorrencias.Add(Ocorrencia.OcorrenciaFabrica.PrimeiraOcorrencia());
            var repo = new Mock <IComputadorRepositorio>();

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

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

            // Act
            var resultado = appServico.Buscar(computador.Id);

            // Assert
            Assert.NotNull(resultado);
            Assert.Equal(computador.Id, resultado.Id);
            Assert.Equal("OK", resultado.ResultadoTransacao);
            Assert.True(!string.IsNullOrEmpty(resultado.Descricao.Trim()));
            Assert.True(!string.IsNullOrEmpty(resultado.Andar.Trim()));
            Assert.True(resultado.Ocorrencias.Count > 0);
        }
        public void ComputadorAppService_InformarUtilizacao_RetornarComputadorDesativadoException()
        {
            // Arrange
            var vm = new UtilizarComputadorViewModel();

            vm.Descricao = "C001";
            var computador = new Computador("C001", "A01");

            computador.Ocorrencias.Add(Ocorrencia.OcorrenciaFabrica.PrimeiraOcorrencia());
            var repo = new Mock <IComputadorRepositorio>();

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

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

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

            Assert.NotNull(ex);
            Assert.Equal("Computador desativado. Não é possível utilizar este computador!", ex.Message);
        }
        public void ComputadorAppService_InformarLiberacaoDoComputador_ComputadorLiberado()
        {
            // Arrange
            var vm = new LiberarComputadorViewModel();

            vm.DescricaoComputador = "C001";
            var computador = new Computador("C001", "A01");

            computador.Ocorrencias.Add(Ocorrencia.OcorrenciaFabrica.ComputadorEmUso());
            var repo = new Mock <IComputadorRepositorio>();

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

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

            // Act
            vm = appServico.LiberarComputador(vm);

            // Assert
            Assert.NotNull(vm);
            Assert.Equal(string.Format("O computador {0} foi liberado.", vm.DescricaoComputador), vm.Resultado);
            Assert.True(appServico.BuscarPorDescricao(vm.DescricaoComputador).PegarUltimaOcorrencia().Liberado);
        }
        public void ComputadorAppService_InformarUtilizacao_RetornoValido()
        {
            // Arrange
            var vm = new UtilizarComputadorViewModel();

            vm.Descricao = "C001";
            var computador = new Computador("C001", "A01");

            computador.Ocorrencias.Add(Ocorrencia.OcorrenciaFabrica.PrimeiraOcorrencia());
            var repo = new Mock <IComputadorRepositorio>();

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

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

            // Act
            vm = appServico.UtilizarComputador(vm);

            // Assert
            Assert.True(!appServico.BuscarPorDescricao(vm.Descricao).VerificarDisponibilidade());
            Assert.Equal(false, appServico.BuscarPorDescricao(vm.Descricao).PegarUltimaOcorrencia().Liberado);
            Assert.Equal("Agora este computador está em uso.", vm.Resultado);
        }
示例#7
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 ComputadorAppService_BuscarComputadorPorId_ComputadorNaoExiste()
        {
            // Arrange
            string id   = "123";
            var    repo = new Mock <IComputadorRepositorio>();

            repo.Setup(x => x.Buscar(id));
            var servico = new Mock <IComputadorServico>();

            servico.Setup(x => x.Buscar(id));
            var appServico = new ComputadorAppServico(servico.Object);

            // Act
            var computadorVm = appServico.Buscar(id);

            // Assert
            Assert.NotNull(computadorVm);
            Assert.Equal("Computador não existe", computadorVm.ResultadoTransacao);
        }
        public void ComputadorAppService_InformarUtilizacao_ComputadorNaoExiste()
        {
            // Arrange
            var vm = new UtilizarComputadorViewModel();

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

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

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

            // Act
            vm = appServico.UtilizarComputador(vm);

            // Assert
            Assert.Equal("O computador informado não existe!", vm.Resultado);
            Assert.Equal("Computador não existe", appServico.BuscarPorDescricao(vm.Descricao).ResultadoTransacao);
        }
        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);
        }
        public void ComputadorAppService_BuscarTodosPorAndar_RetornoValido()
        {
            // Arrange
            var andar = "A01";
            var lista = new List <Computador>();

            lista.Add(new Computador("C001", andar));
            lista.Add(new Computador("C002", andar));

            var repo = new Mock <IComputadorRepositorio>();

            repo.Setup(x => x.BuscarTodosPorAndar(andar)).Returns(lista);
            var servico = new Mock <IComputadorServico>();

            servico.Setup(x => x.BuscarTodosPorAndar(andar)).Returns(lista);
            var appServico = new ComputadorAppServico(servico.Object);

            // Act
            var resultado = appServico.BuscarTodosPorAndar(andar);

            // Assert
            Assert.NotNull(resultado);
            Assert.True(resultado.Count == 2);
        }