private PerguntaCondicional CriarPerguntaCondicional(PerguntaCondicionalDTO pCondicional, Pergunta p) { PerguntaCondicional pergunta = null; switch (pCondicional.TipoPergunta) { case eTipoPergunta.Texto: pergunta = new PerguntaCondicionalTexto(); break; case eTipoPergunta.Anexo: pergunta = new PerguntaCondicionalAnexo(); break; case eTipoPergunta.EscolhaUnica: pergunta = new PerguntaCondicionalUnica(); break; case eTipoPergunta.Numero: pergunta = new PerguntaCondicionalNumero(); break; case eTipoPergunta.Data: pergunta = new PerguntaCondicionalData(); break; case eTipoPergunta.Grade: pergunta = new PerguntaCondicionalGrade(); break; case eTipoPergunta.MultiplaEscolha: pergunta = new PerguntaCondicionalMultipla(); break; default: throw new NotImplementedException(); } pergunta.AtribuirCondicional(pCondicional, p); return(pergunta); }
public void ValidarCondicionalTest() { PerguntaEscolhaUnica p = (PerguntaEscolhaUnica) new PerguntaEscolhaUnica().AtribuirPergunta(new DTO.PerguntaDTO { CasasDecimais = 0, Deleted = false, Descricao = "Desc", Obrigatorio = true, PatternRegex = @"\w*", PerguntaID = 1, PerguntaCondicionalID = null, PerguntaCondicional = null, Prefixo = "R$", Sufixo = "%", TamanhoMaximo = 8, TipoEntrada = (byte)eTipoEntrada.Texto_CaixaDeTexto, TipoPergunta = eTipoPergunta.Texto, TamanhoMaximoBytes = 100, Titulo = "Titulo", UsuarioID = "ADMIN", ValidadorID = (byte)eTipoValidador.Texto_Regex, Opcoes = new List <OpcaoDTO> { new OpcaoDTO { OpcaoID = 1, Descricao = "M" }, new OpcaoDTO { OpcaoID = 2, Descricao = "F" } }, LinhasGrade = new List <DTO.LinhasGradeDTO> { new DTO.LinhasGradeDTO { LinhaID = 1, Descricao = "Nível" }, new DTO.LinhasGradeDTO { LinhaID = 2, Descricao = "SubNível" } } }); PerguntaCondicionalUnica pCondicionalUnica = (PerguntaCondicionalUnica) new PerguntaCondicionalUnica().AtribuirCondicional(new PerguntaCondicionalDTO { OpcoesAtivacao = new List <long> { 1 }, PerguntaCondicionalID = 1, PerguntaID = p.PerguntaID, OperacaoCondicional = (byte)eOperacaoCondicional.UnicaOpcao_Igual, PerguntasGrade = new List <long> { 1, 2, 3 }.ToDictionary(d => d, e => "Opcao_" + e.ToString()), TipoPergunta = eTipoPergunta.EscolhaUnica, ValorAtivacao = 1 }, p); Assert.AreEqual(1, pCondicionalUnica.PerguntaCondicionalID); Assert.AreEqual(eOperacaoCondicional.UnicaOpcao_Igual, pCondicionalUnica.Operacao); Assert.AreEqual(1, pCondicionalUnica.OpcaoAtivacaoID); RespostaUnica resposta = (RespostaUnica) new RespostaUnica().AtribuirResposta(new DTO.RespostaDTO { Opcoes = new List <long> { 1 }, Valor = 1, Extensao = "pdf", NomeArquivo = "Documento", UsuarioID = "admin", OpcaoID = 1, }); Assert.AreEqual(true, pCondicionalUnica.VerificarAtivacaoCondicional(resposta)); resposta.OpcaoEscolhidaID = 0; Assert.AreEqual(false, pCondicionalUnica.VerificarAtivacaoCondicional(resposta)); }