Beispiel #1
0
        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());
        }
Beispiel #2
0
        public IActionResult ProcessaQuestionario(RespostasQuestionarioViewModel viewModel)
        {
            IList <Profissao> profissoesExistentes = new List <Profissao>();

            if (ModelState.IsValid)
            {
                foreach (var resposta in viewModel.Respostas)
                {
                    profissoesExistentes.Add(_repositorioRespostas.GetResposta(resposta.RespostaId).Profissao);
                }

                IEnumerable <Profissao> profissoesCitadas = profissoesExistentes.Distinct();
                int       maxCitacao = 0;
                Profissao prof       = null;

                foreach (var profissaoCitada in profissoesCitadas)
                {
                    int citacoes = profissoesExistentes.Count(profissaoExistente => profissaoCitada.Id == profissaoExistente.Id);

                    if (citacoes > maxCitacao)
                    {
                        maxCitacao = citacoes;
                        prof       = profissaoCitada;
                    }
                }

                return(View("Resultado", new ResultadoViewModel()
                {
                    SucessoResultado = true, ProfissaoRecomendada = prof.Descricao
                }));
            }
            return(View("Resultado", new ResultadoViewModel()
            {
                SucessoResultado = false
            }));
        }
Beispiel #3
0
        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());
        }