public void ProcessaQuestionario_ViewModelInvalido_RetornaViewResultComViewModelResultadoFalso() { // Arrange var mockRepositorioPerguntas = new Mock <IRepositorioPergunta>(); var mockRepositorioRespostas = new Mock <IRepositorioResposta>(); QuestionarioController questionarioController = new QuestionarioController(mockRepositorioPerguntas.Object, mockRepositorioRespostas.Object); questionarioController.ModelState.AddModelError("viewModel", "O ViewModel deve ser especificado"); ResultadoViewModel viewModelRespostaEsperado = new ResultadoViewModel() { SucessoResultado = false }; RespostasQuestionarioViewModel viewModel = null; // Act IActionResult resposta = questionarioController.ProcessaQuestionario(viewModel); ViewResult viewResult = (ViewResult)resposta; ResultadoViewModel viewModelRespostaAtual = (ResultadoViewModel)viewResult.Model; // Assert Assert.Equal(viewModelRespostaEsperado, viewModelRespostaAtual, new ComparadorResultadoViewModel()); }
public void ProcessaQuestionario_ViewModelValido_RetornaViewResultComViewModelResultadoSucesso() { // Arrange var mockRepositorioPerguntas = new Mock <IRepositorioPergunta>(); var mockRepositorioRespostas = new Mock <IRepositorioResposta>(); Profissao profissaoA = new Profissao { Id = 1, Descricao = "Profissão A" }; Profissao profissaoB = new Profissao { Id = 2, Descricao = "Profissão B" }; List <Resposta> listaRespostas = new List <Resposta>(); listaRespostas.Add(new Resposta() { Id = 1, PerguntaId = 1, Texto = "Resposta 1-1", Profissao = profissaoA }); listaRespostas.Add(new Resposta() { Id = 2, PerguntaId = 1, Texto = "Resposta 1-2", Profissao = profissaoB }); listaRespostas.Add(new Resposta() { Id = 3, PerguntaId = 2, Texto = "Resposta 2-1", Profissao = profissaoA }); listaRespostas.Add(new Resposta() { Id = 4, PerguntaId = 2, Texto = "Resposta 2-2", Profissao = profissaoB }); mockRepositorioRespostas.Setup(repositorio => repositorio.GetResposta(It.IsAny <int>())).Returns((int id) => listaRespostas.FirstOrDefault(resposta => resposta.Id == id)); QuestionarioController questionarioController = new QuestionarioController(mockRepositorioPerguntas.Object, mockRepositorioRespostas.Object); ResultadoViewModel viewModelRespostaEsperado = new ResultadoViewModel() { SucessoResultado = true, ProfissaoRecomendada = profissaoA.Descricao }; RespostasQuestionarioViewModel viewModel = new RespostasQuestionarioViewModel() { Respostas = new List <RespostaPostViewModel> { new RespostaPostViewModel { PerguntaId = 1, RespostaId = 1 }, new RespostaPostViewModel { PerguntaId = 2, RespostaId = 3 } } }; // Act IActionResult resposta = questionarioController.ProcessaQuestionario(viewModel); ViewResult viewResult = (ViewResult)resposta; ResultadoViewModel viewModelRespostaAtual = (ResultadoViewModel)viewResult.Model; // Assert Assert.Equal(viewModelRespostaEsperado, viewModelRespostaAtual, new ComparadorResultadoViewModel()); }