public void GetQuestaoConcursoRecurso_MultiplosVotos_QtdCabeNaoCabeUltimoVotoCorreto()
        {
            var mock      = Substitute.For <IQuestaoData>();
            var mockImage = Substitute.For <IImagemData>();
            var business  = new QuestaoBusiness(mock, mockImage, null, null);

            var questaoId            = 1;
            var matricula            = 0;
            var imagemId             = 7;
            var qtdUltimoVotosfavor  = 2;
            var qtdUltimoVotosContra = 1;

            var questao      = QuestaoRecursoEntityTestData.ObterQuestaoForumRecursoExisteAnaliseProfCabeRecurso();
            var alternativas = QuestaoRecursoEntityTestData.ObterAlternativasGabaritoOficialLetraC();
            var comentarios  = QuestaoRecursoEntityTestData.GetComentariosVotosQuestaoUltimoVotoAfirma();

            mock.GetQuestaoConcursoRecurso(questaoId, matricula).Returns(questao);
            mock.ObterAlternativasComEstatisticaFavorita(questaoId).Returns(alternativas);
            mock.ObterComentariosForumConcursoPre(questaoId, matricula).Returns(comentarios);
            mock.ObterComentariosForumConcursoPos(questaoId, matricula).Returns(new List <ForumComentarioDTO>());
            mock.ObterImagensComentarioRecurso(questaoId).Returns(new List <tblConcursoQuestoes_recursosComentario_Imagens>());
            mock.AlunoSelecionouAlternativaQuestaoProva(1, 1).ReturnsForAnyArgs(false);
            mockImage.GetImagensQuestaoConcurso(questaoId).Returns(new List <int> {
                imagemId
            });

            var q = business.GetQuestaoConcursoRecurso(questaoId, matricula);

            Assert.IsNotNull(q);
            Assert.AreEqual(qtdUltimoVotosfavor, q.ForumRecurso.ForumPreAnalise.QtdCabe);
            Assert.AreEqual(qtdUltimoVotosContra, q.ForumRecurso.ForumPreAnalise.QtdNaocabe);
            Assert.AreEqual(QuestaoRecurso.StatusOpiniao.Favor.GetDescription(), q.ForumRecurso.ForumPreAnalise.VotoAluno);
        }
        public void DefineForumPreRecursosForumFechado_TestaForumAberto_ForumPreAberto()
        {
            var mock      = Substitute.For <IQuestaoData>();
            var mockImage = Substitute.For <IImagemData>();
            var business  = new QuestaoBusiness(mock, mockImage, null, null);

            var questaoId = 1;
            var matricula = 0;
            var imagemId  = 7;

            var questao      = QuestaoRecursoEntityTestData.ObterQuestaoForumRecursoExisteAnaliseProfCabeRecurso();
            var alternativas = QuestaoRecursoEntityTestData.ObterAlternativasGabaritoOficialLetraC();

            mock.GetQuestaoConcursoRecurso(questaoId, matricula).Returns(questao);
            mock.ObterAlternativasComEstatisticaFavorita(questaoId).Returns(alternativas);
            mock.ObterComentariosForumConcursoPre(questaoId, matricula).Returns(new List <ForumComentarioDTO>());
            mock.ObterComentariosForumConcursoPos(questaoId, matricula).Returns(new List <ForumComentarioDTO>());
            mock.ObterImagensComentarioRecurso(questaoId).Returns(new List <tblConcursoQuestoes_recursosComentario_Imagens>());
            mock.AlunoSelecionouAlternativaQuestaoProva(Arg.Any <int>(), Arg.Any <int>()).Returns(false);
            mockImage.GetImagensQuestaoConcurso(questaoId).Returns(new List <int> {
                imagemId
            });

            var q = business.GetQuestaoConcursoRecurso(questaoId, matricula);

            q.ForumRecurso.ExisteAnaliseProfessor = false;
            var a = business.DefineForumPreRecursosForumFechado(q);

            Assert.AreEqual(false, a);
        }
        public void GetQuestaoConcursoRecurso_AcertaGabarito_LetraCGabaritoOficial()
        {
            var mock      = Substitute.For <IQuestaoData>();
            var mockImage = Substitute.For <IImagemData>();
            var business  = new QuestaoBusiness(mock, mockImage, null, null);

            var questaoId = 1;
            var matricula = 0;
            var imagemId  = 7;

            var questao      = QuestaoRecursoEntityTestData.ObterQuestaoForumRecursoExisteAnaliseProfCabeRecurso();
            var alternativas = QuestaoRecursoEntityTestData.ObterAlternativasGabaritoOficialLetraC();

            mock.GetQuestaoConcursoRecurso(questaoId, matricula).Returns(questao);
            mock.ObterAlternativasComEstatisticaFavorita(questaoId).Returns(alternativas);
            mock.ObterComentariosForumConcursoPre(questaoId, matricula).Returns(new List <ForumComentarioDTO>());
            mock.ObterComentariosForumConcursoPos(questaoId, matricula).Returns(new List <ForumComentarioDTO>());
            mock.ObterImagensComentarioRecurso(questaoId).Returns(new List <tblConcursoQuestoes_recursosComentario_Imagens>());
            mock.AlunoSelecionouAlternativaQuestaoProva(1, 1).ReturnsForAnyArgs(false);
            mockImage.GetImagensQuestaoConcurso(questaoId).Returns(new List <int> {
                imagemId
            });

            var q = business.GetQuestaoConcursoRecurso(questaoId, matricula);

            Assert.IsNotNull(q);
            Assert.AreEqual(QuestaoRecurso.StatusGabarito.GabaritoOficial.GetDescription(), q.Questao.GabaritoTipo);
            Assert.AreEqual("C", q.Questao.GabaritoLetra);
            Assert.AreEqual(imagemId, q.Questao.EnunciadoImagensId.First());
        }