public void deberia_poder_obtener_las_evaluaciones_a_actualizar() { Alumno alumno = TestObjects.AlumnoDelCurso(); Curso curso = TestObjects.UnCursoConAlumnos(); List <Alumno> alumnos = curso.Alumnos(); List <Curso> cursos = new List <Curso>(); cursos.Add(curso); Expect.AtLeastOnce.On(TestObjects.RepoAlumnosMockeado()).Method("GetAlumnos").WithAnyArguments().Will(Return.Value(alumnos)); Expect.AtLeastOnce.On(TestObjects.RepoCursosMockeado()).Method("GetCursos").WithAnyArguments().Will(Return.Value(cursos)); Expect.AtLeastOnce.On(TestObjects.RepoAlumnosMockeado()).Method("GetAlumnoByDNI").WithAnyArguments().Will(Return.Value(alumno)); Expect.AtLeastOnce.On(TestObjects.RepoCursosMockeado()).Method("GetCursoById").WithAnyArguments().Will(Return.Value(curso)); string source = @" |id |idInstanciaEvaluacion |DescripcionInstanciaEvaluacion |idAlumno |idCurso |Calificacion |idUsuario |fechaEvaluacion |1 |14 |Primer Parcial |281941 |14 |A1 |6 |2012-10-13 21:36:35.077 |2 |14 |Primer Parcial |284165 |14 |A2 |6 |2012-10-13 21:36:35.077 |3 |14 |Primer Parcial |287872 |14 |A3 |7 |2012-10-13 21:36:35.077 " ; IConexionBD conexion = TestObjects.ConexionMockeada(); var resultado_sp = TablaDeDatos.From(source); Expect.AtLeastOnce.On(conexion).Method("Ejecutar").WithAnyArguments().Will(Return.Value(resultado_sp)); RepositorioDeEvaluacion repo = new RepositorioDeEvaluacion(conexion, TestObjects.RepoCursosMockeado(), TestObjects.RepoAlumnosMockeado()); List <Evaluacion> evaluaciones_antiguas = repo.GetEvaluaciones(); //Hice una nueva lista de Evaluaciones xq si cambiaba de la lista original tb cambiaba a la lista nueva List <Evaluacion> evaluaciones_nuevas = TestObjects.Evaluaciones(); evaluaciones_nuevas.First().CambiarCalificacionPor(new CalificacionNoNumerica("A8"), new DateTime(2013, 07, 25)); var eval_cambiadas = new ComparadorDeDiferencias().EvaluacionesParaActualizar(evaluaciones_antiguas, evaluaciones_nuevas); //El Except no funcionaba xq comparaba la igualdad de cada uno de los campos dentro del objeto, y por ejemplo la fecha era la misma pero no la consideraba igual //List<Evaluacion> diferencias = evaluaciones_antiguas.Except(evaluaciones_nuevas).ToList(); Assert.AreEqual(3, repo.GetEvaluacionesPorCurso(curso).Count); Assert.AreEqual(1, eval_cambiadas.Count); evaluaciones_nuevas.Last().Fecha = new DateTime(2013, 08, 01); eval_cambiadas = new ComparadorDeDiferencias().EvaluacionesParaActualizar(evaluaciones_antiguas, evaluaciones_nuevas); Assert.AreEqual(2, eval_cambiadas.Count); }
public void deberia_poder_obtener_las_observaciones_a_actualizar_y_guardar_las_nuevas() { string source = @" |id |FechaCarga |Relacion |PersonaCarga |Pertenece |Asunto |ReferenteMDS |Seguimiento |Resultado |FechaDelResultado |ReferenteRtaMDS |idBaja |01 |2012-10-13 00:00:00.077 |Fines CENS |Mariano |MDS |Cursada |Mariano |Lala |Sasa |2012-10-13 00:00:00.077 |Elena |1 |02 |2012-10-13 00:00:00.077 |Fines Puro |Leonardo |MDS |Cursada |Mariano |Lala |Sasa |2012-10-13 00:00:00.077 |Elena |2 |03 |2012-10-13 00:00:00.077 |Fines CENS |Cholo |MDS |Libre |Mariano |Lala |Sasa |2012-10-13 00:00:00.077 |Elena |1"; IConexionBD conexion = TestObjects.ConexionMockeada(); ComparadorDeDiferencias comparador = new ComparadorDeDiferencias(); var resultado_sp = TablaDeDatos.From(source); List <Observacion> observaciones = new List <Observacion>(); var repo = new RepositorioDeCursos(conexion); Expect.AtLeastOnce.On(conexion).Method("Ejecutar").WithAnyArguments().Will(Return.Value(resultado_sp)); List <Observacion> observaciones_antiguas = repo.GetObservaciones(); //Hice una nueva lista de Evaluaciones xq si cambiaba de la lista original tb cambiaba a la lista nueva List <Observacion> observaciones_nuevas = TestObjects.Observaciones(); observaciones_nuevas.First().Asunto = "cambio el asunto"; var obser_cambiadas = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas); var obser_a_agregar = comparador.ObservacionesParaGuardar(observaciones_antiguas, observaciones_nuevas); Assert.AreEqual(1, obser_cambiadas.Count); Assert.AreEqual(1, obser_a_agregar.Count); observaciones_nuevas.Find(o => o.Id.Equals(2)).FechaCarga = new DateTime(2013, 08, 01); obser_cambiadas = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas); Assert.AreEqual(2, obser_cambiadas.Count); //PRUEBO BORRAR OBSERVACIONES observaciones_nuevas.RemoveAt(0); var obser_a_borrar = comparador.ObservacionesParaDarDeBajaSinInsertarOtra(observaciones_antiguas, observaciones_nuevas); Assert.AreEqual(1, obser_a_borrar.Count); }
public void deberia_poder_borrar_una_evaluacion_que_ya_estaba() { Alumno alumno = TestObjects.AlumnoDelCurso(); Curso curso = TestObjects.UnCursoConAlumnos(); List <Alumno> alumnos = curso.Alumnos(); List <Curso> cursos = new List <Curso>(); cursos.Add(curso); Expect.AtLeastOnce.On(TestObjects.RepoAlumnosMockeado()).Method("GetAlumnos").WithAnyArguments().Will(Return.Value(alumnos)); Expect.AtLeastOnce.On(TestObjects.RepoCursosMockeado()).Method("GetCursos").WithAnyArguments().Will(Return.Value(cursos)); Expect.AtLeastOnce.On(TestObjects.RepoAlumnosMockeado()).Method("GetAlumnoByDNI").WithAnyArguments().Will(Return.Value(alumno)); Expect.AtLeastOnce.On(TestObjects.RepoCursosMockeado()).Method("GetCursoById").WithAnyArguments().Will(Return.Value(curso)); string source = @" |id |idInstanciaEvaluacion |DescripcionInstanciaEvaluacion |idAlumno |idCurso |Calificacion |idUsuario |fechaEvaluacion |1 |14 |Primer Parcial |281941 |14 |A1 |6 |2012-10-13 21:36:35.077 |2 |14 |Primer Parcial |284165 |14 |A2 |6 |2012-10-13 21:36:35.077 |3 |14 |Primer Parcial |287872 |14 |A3 |7 |2012-10-13 21:36:35.077 " ; IConexionBD conexion = TestObjects.ConexionMockeada(); var resultado_sp = TablaDeDatos.From(source); Expect.AtLeastOnce.On(conexion).Method("Ejecutar").WithAnyArguments().Will(Return.Value(resultado_sp)); RepositorioDeEvaluacion repo = new RepositorioDeEvaluacion(conexion, TestObjects.RepoCursosMockeado(), TestObjects.RepoAlumnosMockeado()); List <Evaluacion> evaluaciones_antiguas = repo.GetEvaluaciones(); List <Evaluacion> evaluaciones_nuevas = TestObjects.Evaluaciones(); evaluaciones_nuevas.Last().CambiarCalificacionPor(new CalificacionNoNumerica("A8"), new DateTime(2013, 07, 25)); evaluaciones_nuevas.RemoveAt(0); var eval_a_borrar = new ComparadorDeDiferencias().EvaluacionesParaDarDeBajaSinInsertarOtra(evaluaciones_antiguas, evaluaciones_nuevas); var eval_para_historico = new ComparadorDeDiferencias().EvaluacionesParaDarDeBaja(evaluaciones_antiguas, evaluaciones_nuevas); Assert.AreEqual(1, eval_a_borrar.Count); Assert.AreEqual(2, eval_para_historico.Count); }