public async Task <IActionResult> CriarQuestaoObjetiva([FromBody] CriarQuestaoObjetivaComando comando)
        {
            var(_, isFailure, questaoId, error) = await _mediator.Send(comando, new CancellationToken());

            if (isFailure)
            {
                return(BadRequest(ErrorObjectResult.Criar("Não foi possível criar a questão", error)));
            }
            return(Ok(new { Id = questaoId }));
        }
Пример #2
0
        public async Task DadoDescricaoInvalida_QuandoCriarQuestaoObjetiva_DevoReceberErro()
        {
            var comando = new CriarQuestaoObjetivaComando(_nivelEnsinoId, _disciplinaId, "", new CriarQuestaoObjetivaComando.Opcao[]
            {
                _opcaoCorreta, _opcaoIncorreta
            });

            var(_, isFailure, _, error) = await _handler.Handle(comando, new CancellationToken());

            isFailure.ShouldBeTrue();
            error.ShouldBe(QuestoesMotivosErro.DescricaoObrigatoria);
        }
Пример #3
0
        public async Task DadoNivelEnsinoInexistente_QuandoCriarQuestaoObjetiva_DevoReceberErro()
        {
            var comando = new CriarQuestaoObjetivaComando(75546, _disciplinaId, _descricao, new CriarQuestaoObjetivaComando.Opcao[]
            {
                _opcaoCorreta, _opcaoIncorreta
            });

            var(_, isFailure, _, error) = await _handler.Handle(comando, new CancellationToken());

            isFailure.ShouldBeTrue();
            error.ShouldBe(QuestoesMotivosErro.NivelEnsinoNaoLocalizado);
        }
Пример #4
0
        public async Task DadoParametrosValidos_QuandoCriarQuestaoObjetiva_DevoSalvarAlteracoesCorretamente()
        {
            var comando = new CriarQuestaoObjetivaComando(_nivelEnsinoId, _disciplinaId, _descricao, new CriarQuestaoObjetivaComando.Opcao[]
            {
                _opcaoCorreta, _opcaoIncorreta
            });

            var(isSuccess, _, id, _) = await _handler.Handle(comando, new CancellationToken());

            isSuccess.ShouldBeTrue();
            id.ShouldBeGreaterThan(0);
            var questao = await _context.Questoes.FirstOrDefaultAsync(c => c.Id == id);

            questao.ShouldNotBeNull();
            questao.Descricao.ShouldBe(_descricao);
            questao.DisciplinaId.ShouldBe(_disciplinaId);
            questao.NivelEnsinoId.ShouldBe(_nivelEnsinoId);
            questao.ShouldBeOfType(typeof(QuestaoObjetiva));
            var objetiva = questao as QuestaoObjetiva;

            objetiva?.Opcoes.FirstOrDefault(c => c.Correta)?.Texto.ShouldBe(_opcaoCorreta.Texto);
            objetiva?.Opcoes.FirstOrDefault(c => !c.Correta)?.Texto.ShouldBe(_opcaoIncorreta.Texto);
        }