public void IniciarExamen_UsuarioValidoExamenValido_DevuelveExamen()
        {
            var examen = ControladorExamen.InicializarExamen("10", "OpentDb", "Science: Computers", "easy");

            examen = ControladorExamen.IniciarExamen("leo", examen);
            Assert.IsTrue(examen.CantidadPreguntas == 10);
        }
Beispiel #2
0
        private void siguiente_Click(object sender, EventArgs e)
        {
            if (flowLayoutPanel1.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Checked) != null)
            {
                int respuestaId = Int32.Parse(flowLayoutPanel1.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Checked).Name);

                this.iExamen = ControladorExamen.GuardarRespuesta(iExamen, obtienePregunta(iNumeroPregunta), respuestaId);

                LimpiaControles(); // Limpia todos los controles

                iNumeroPregunta++;

                if (iNumeroPregunta >= iExamen.CantidadPreguntas)
                {
                    this.Hide();

                    examenTerminado = ControladorExamen.FinalizarExamen(iExamen);

                    Ventana_Examen_Terminado finalizado = new Ventana_Examen_Terminado(examenTerminado);
                    finalizado.ShowDialog();
                    this.Close();
                }
                else
                {
                    obtienePregunta(iNumeroPregunta);
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar una resupuesta");
            }
        }
Beispiel #3
0
 public Ventana_Preguntas(ExamenDTO pExamenDto)
 {
     InitializeComponent();
     iExamen         = pExamenDto;
     iNumeroPregunta = 0;
     iPreguntas      = ControladorExamen.GetPreguntasDeExamen(iExamen.Id).ToList();
 }
        public void GuardarRespuesta_ExamenValidoPreguntaValidaRespuestaInvalida_DevuelveArgumentException()
        {
            var examen = ControladorExamen.InicializarExamen("10", "OpentDb", "Science: Computers", "easy");

            examen = ControladorExamen.IniciarExamen("leo", examen);
            var preguntas            = ControladorExamen.GetPreguntasDeExamen(examen.Id);
            var idRespuestasElegidas = new List <int>();

            Assert.ThrowsException <ArgumentException>(() => ControladorExamen.GuardarRespuesta(examen, preguntas.First(), 0));
        }
        private void btnComenzarExamen_Click(object sender, EventArgs e)
        {
            if ((categoria.SelectedItem == null) || (dificultad.SelectedItem == null) || (conjunto.SelectedItem == null) || (cantidadPreguntas.Value == null))
            {
                MessageBox.Show("Debe completar todos los campos para iniciar el examen");
            }
            else
            {
                string categoriaSeleccionada  = categoria.SelectedItem.ToString();
                string dificultadSeleccionada = dificultad.SelectedItem.ToString();
                string conjuntoSeleccionado   = conjunto.SelectedItem.ToString();
                int    cantidadSeleccionada   = Convert.ToInt32(cantidadPreguntas.Value);

                var categoriaPreguntas = ControladorPreguntas.GetCategoriasConMasDeNPreguntas(conjuntoSeleccionado, cantidadSeleccionada);


                //Si la categoria no tiene mas de N preguntas
                if (categoriaPreguntas.FirstOrDefault(c => c.Id == categoriaSeleccionada) == null)
                {
                    int cantidadDePreguntasParaCategoria = ControladorPreguntas.CantidadDePreguntasParaCategoria(categoriaSeleccionada);

                    MessageBoxButtons mensaje = MessageBoxButtons.YesNo;
                    DialogResult      result  = MessageBox.Show($"Solo hay {cantidadDePreguntasParaCategoria} preguntas de {categoriaSeleccionada}. " +
                                                                $"Quiere hacer el examen aunque no haya la cantidad de preguntas seleccionadas?", "Advertencia", mensaje);


                    if (result == DialogResult.Yes)
                    {
                        ExamenDTO nuevoExamen = ControladorExamen.InicializarExamen(cantidadSeleccionada.ToString(), conjuntoSeleccionado, categoriaSeleccionada, dificultadSeleccionada);
                        nuevoExamen = ControladorExamen.IniciarExamen(iNombreUsuario, nuevoExamen);

                        this.Hide();

                        using (Ventana_Preguntas Vpreguntas = new Ventana_Preguntas(nuevoExamen))
                            Vpreguntas.ShowDialog();
                        this.Close();
                    }
                }
                else
                {
                    ExamenDTO nuevoExamen = ControladorExamen.InicializarExamen(cantidadSeleccionada.ToString(), conjuntoSeleccionado, categoriaSeleccionada, dificultadSeleccionada);
                    nuevoExamen = ControladorExamen.IniciarExamen(iNombreUsuario, nuevoExamen);

                    this.Hide();

                    using (Ventana_Preguntas Vpreguntas = new Ventana_Preguntas(nuevoExamen))
                        Vpreguntas.ShowDialog();
                    this.Close();
                }
            }
        }
Beispiel #6
0
        private void timer_Tick(object sender, EventArgs e) //Tiempo agotado
        {
            if (tiempo > 0)
            {
                tiempo--;
                this.time.Text = "Tiempo Restante: " + tiempo.ToString();
            }
            else if (examenTerminado == null)
            {
                this.timer.Enabled = false;
                this.Hide();

                examenTerminado = ControladorExamen.FinalizarExamen(iExamen);

                using (Ventana_Examen_Terminado finalizado = new Ventana_Examen_Terminado(examenTerminado)) //Paso el examen a la proxima ventana
                    finalizado.ShowDialog();
                this.Close();
            }
        }
        public void GuardarRespuestaFinalizarExamen_ExamenValidoPreguntaValidaRespuestaValida_DevuelveExamen()
        {
            var examen = ControladorExamen.InicializarExamen("10", "OpentDb", "Science: Computers", "easy");

            examen = ControladorExamen.IniciarExamen("leo", examen);
            var preguntas            = ControladorExamen.GetPreguntasDeExamen(examen.Id);
            var idRespuestasElegidas = new List <int>();

            foreach (var p in preguntas)
            {
                var idRespuesta = p.Respuestas.First().Id;
                idRespuestasElegidas.Add(idRespuesta);
                ControladorExamen.GuardarRespuesta(examen, p, idRespuesta);
            }
            ControladorExamen.FinalizarExamen(examen);
            var examenGuardadoDTO = ControladorAdministrativo.GetExamenes().First(e => e.Id == examen.Id);

            foreach (var ep in examenGuardadoDTO.ExamenPreguntas)
            {
                Assert.IsTrue(idRespuestasElegidas.Contains(ep.RespuestaElegidaId));
            }
            Assert.IsTrue(examenGuardadoDTO.ExamenPreguntas.ToList().Count == preguntas.Count());
        }
        public void IniciarExamen_UsuarioInexistenteExamenValido_DevuelveUsrNoEncontradoException()
        {
            var examen = ControladorExamen.InicializarExamen("10", "OpentDb", "Science: Computers", "easy");

            Assert.ThrowsException <UsrNoEncontradoException>(() => ControladorExamen.IniciarExamen("usuarioQueNoExiste", examen));
        }
 public void InicializarExamen_ExamenConCategoriaInexistente_DevuelveArgumentException()
 {
     Assert.ThrowsException <ArgumentException>(() => ControladorExamen.InicializarExamen("10", "OpentDb", "CategoriaQueNoExiste", "easy"));
 }
 public void InicializarExamen_ExamenConConjuntoInexistente_DevuelveArgumentException()
 {
     Assert.ThrowsException <ArgumentException>(() => ControladorExamen.InicializarExamen("10", "ConjuntoQueNoExiste", "Science: Computers", "easy"));
 }
 public void InicializarExamen_ExamenVacio_DevuelveExcepcionNull()
 {
     Assert.ThrowsException <ArgumentNullException>(() => ControladorExamen.InicializarExamen("", "", "", ""));
 }
        public void InicializarExamen_ExamenValido_DevuelveExamen()
        {
            var examenDto = ControladorExamen.InicializarExamen("10", "OpentDb", "Science: Computers", "easy");

            Assert.IsTrue(examenDto.ExamenPreguntas.ToList().Count == 10);
        }