public void CriarNotificacoesMudancaStatusQuestao_NaoCriarNotificacoesDemaisStatus_Zero()
        {
            var idQuestao     = 2;
            var idNotificacao = (int)Constants.Notificacoes.Recursos.StatusQuestaoFavoritos;
            var notificacao   = NotificacaoEntityTestData.GetNotificacaoSimulado();
            var mockNotif     = Substitute.For <INotificacaoData>();
            var mockExercicio = Substitute.For <IExercicioData>();
            var mockQuestao   = Substitute.For <IQuestaoData>();

            mockNotif.Get(idNotificacao).Returns(new Notificacao {
                IdNotificacao = idNotificacao, Texto = string.Empty
            });

            var business = new NotificacaoRecursosBusiness(mockNotif, mockExercicio, mockQuestao);

            var result = business.CriarNotificacoesMudancaStatusQuestao(idQuestao, QuestaoRecurso.StatusQuestao.NaoExiste);

            Assert.AreEqual(0, result);

            result = business.CriarNotificacoesMudancaStatusQuestao(idQuestao, QuestaoRecurso.StatusQuestao.NaoSolicitado);
            Assert.AreEqual(0, result);

            result = business.CriarNotificacoesMudancaStatusQuestao(idQuestao, QuestaoRecurso.StatusQuestao.Invalido);
            Assert.AreEqual(0, result);

            mockNotif.DidNotReceive().InserirNotificacoesPosEvento(Arg.Any <NotificacaoPosEventoDTO[]>());
            mockNotif.DidNotReceive().AtualizarNotificacoesPosEvento(Arg.Any <List <tblNotificacaoEvento> >());
        }
        public void CriarNotificacoesMudancaStatusQuestao_CriarNotificacaoAnaliseProvaRmais_LinhasAfetadas()
        {
            var idQuestaoRMais = 3;
            var idNotificacao  = (int)Constants.Notificacoes.Recursos.StatusQuestaoFavoritos;
            var notificacao    = NotificacaoEntityTestData.GetNotificacaoSimulado();
            var mockNotif      = Substitute.For <INotificacaoData>();
            var mockExercicio  = Substitute.For <IExercicioData>();
            var mockQuestao    = Substitute.For <IQuestaoData>();


            mockNotif.Get(idNotificacao).Returns(new Notificacao
            {
                IdNotificacao = idNotificacao, Texto = string.Empty,
                Titulo        = string.Empty
            });
            mockQuestao.IsQuestaoProvaRMais(idQuestaoRMais).Returns(true);
            mockQuestao.GetQuestaoConcursoById(idQuestaoRMais).Returns(new tblConcursoQuestoes());

            mockNotif.AtualizarNotificacoesPosEvento(Arg.Any <List <tblNotificacaoEvento> >()).Returns(3);
            mockNotif.InserirNotificacoesPosEvento(null);
            mockExercicio.GetAlunosFavoritaramProva(0).Returns(new ProvaAlunosFavoritoDTO
            {
                Prova = new ProvaConcursoDTO {
                    Nome = string.Empty
                },
                MatriculasFavoritaram = new List <int> {
                    1, 2, 3
                }
            });

            var business = new NotificacaoRecursosBusiness(mockNotif, mockExercicio, mockQuestao);

            var resultRMais = business.CriarNotificacoesMudancaStatusQuestao(idQuestaoRMais, QuestaoRecurso.StatusQuestao.EmAnalise);

            Assert.IsTrue(resultRMais > 0);

            mockNotif.Received().InserirNotificacoesPosEvento(Arg.Any <NotificacaoPosEventoDTO[]>());
            mockNotif.Received().AtualizarNotificacoesPosEvento(Arg.Any <List <tblNotificacaoEvento> >());
        }