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

            var questaoId      = 1;
            var matricula      = 0;
            var respostaCerta  = "C";
            var respostaErrada = "A";

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

            mock.GetConcursoQuestoesAlunoFavorita(questaoId, matricula).ReturnsNull();
            mock.ObterAlternativasComEstatisticaFavorita(questaoId).Returns(alternativas);
            mock.InserirQuestaoConcursoAlunoFavoritas(null).ReturnsForAnyArgs(1);

            var qtd = business.SelecionarAlternativaQuestaoConcurso(questaoId, matricula, respostaCerta);

            mock.Received().InserirQuestaoConcursoAlunoFavoritas(
                Arg.Is <tblConcursoQuestoes_Aluno_Favoritas>(
                    f => f.bitResultadoResposta.HasValue && f.bitResultadoResposta.Value));

            business.SelecionarAlternativaQuestaoConcurso(questaoId, matricula, respostaErrada);

            mock.Received().InserirQuestaoConcursoAlunoFavoritas(
                Arg.Is <tblConcursoQuestoes_Aluno_Favoritas>(
                    f => !f.bitResultadoResposta.HasValue || !f.bitResultadoResposta.Value));

            Assert.AreEqual(1, qtd);
        }
        public void SelecionarAlternativaQuestaoConcurso_RespostaExistenteSalvarSegundoChar_LetraColunaPrimeiroEColunaNovaResposta()
        {
            var mock     = Substitute.For <IQuestaoData>();
            var business = new QuestaoBusiness(mock, null, null, null);

            var questaoId  = 1;
            var matricula  = 0;
            var novaLetra  = "D";
            var velhaLetra = "A";

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

            mock.GetConcursoQuestoesAlunoFavorita(questaoId, matricula).Returns(new tblConcursoQuestoes_Aluno_Favoritas
            {
                charResposta     = velhaLetra,
                charRespostaNova = novaLetra
            });

            mock.ObterAlternativasComEstatisticaFavorita(questaoId).Returns(alternativas);
            mock.UpdateQuestoesConcursoAlunoFavoritas(new tblConcursoQuestoes_Aluno_Favoritas()).ReturnsForAnyArgs(1);

            var qtd = business.SelecionarAlternativaQuestaoConcurso(questaoId, matricula, novaLetra);

            mock.Received().UpdateQuestoesConcursoAlunoFavoritas(
                Arg.Is <tblConcursoQuestoes_Aluno_Favoritas>(
                    f => f.charResposta == velhaLetra && f.charRespostaNova == novaLetra));

            Assert.AreEqual(1, qtd);
        }