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_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 LiberarComputadorViewModel LiberarComputador(LiberarComputadorViewModel viewModel) { var computador = _servico.BuscarPorDescricao(viewModel.DescricaoComputador); if (computador == null) { viewModel.Resultado = string.Format("O computador {0} não existe.", viewModel.DescricaoComputador); } else { computador.InformarLiberacao(); _servico.Atualizar(computador); viewModel.Resultado = string.Format("O computador {0} foi liberado.", viewModel.DescricaoComputador); } return(viewModel); }
public void ComputadorController_LiberarComputador_ComputadorDesativado() { // Arrange var vm = new LiberarComputadorViewModel(); vm.DescricaoComputador = "c001"; var appServico = new Mock <IComputadorAppServico>(); appServico.Setup(x => x.LiberarComputador(vm)).Throws(new ComputadorDesativadoException()); // Act var response = new ComputadorController(appServico.Object) .LiberarComputador(new HttpRequestMessage { Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }).Content.ReadAsAsync <LiberarComputadorViewModel>().Result; // Assert Assert.NotNull(response); Assert.Equal(vm.DescricaoComputador, response.DescricaoComputador); Assert.Equal("Computador desativado. Não é possível utilizar este computador!", response.Resultado); }
public void ComputadorController_LiberarComputador_LiberacaoValida() { // Arrange var vm = new LiberarComputadorViewModel(); vm.DescricaoComputador = "c001"; vm.Resultado = string.Format("O computador {0} foi liberado.", vm.DescricaoComputador); var appServico = new Mock <IComputadorAppServico>(); appServico.Setup(x => x.LiberarComputador(vm)).Returns(vm); // Act var response = new ComputadorController(appServico.Object) .LiberarComputador(new HttpRequestMessage { Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }).Content.ReadAsAsync <LiberarComputadorViewModel>().Result; // Assert Assert.NotNull(response); Assert.Equal(vm.DescricaoComputador, response.DescricaoComputador); Assert.Equal(string.Format("O computador {0} foi liberado.", vm.DescricaoComputador), response.Resultado); }
public HttpResponseMessage LiberarComputador(HttpRequestMessage request) { LiberarComputadorViewModel vm = new LiberarComputadorViewModel(); try { vm = request.Content.ReadAsAsync <LiberarComputadorViewModel>().Result; if (vm.EhValido()) { vm = _appServico.LiberarComputador(vm); return(new HttpResponseMessage() { Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }); } else { vm.Resultado = "Os dados informados não são válidos."; return(new HttpResponseMessage() { Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }); } } catch (NullReferenceException) { return(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent("Erro no corpo da requisição.") }); } catch (ComputadorNaoExisteException ex) { vm.Resultado = ex.Message; return(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }); } catch (ComputadorDesativadoException ex) { vm.Resultado = ex.Message; return(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new ObjectContent <LiberarComputadorViewModel>(vm, new JsonMediaTypeFormatter()) }); } catch (Exception) { return(new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent("Erro interno no servidor.") }); } }