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 List <Observacion> GuardarObservaciones(List <Observacion> observaciones_antiguas, List <Observacion> observaciones_nuevas, Usuario usuario) { var registros_no_procesados = new List <Observacion>(); //FC: tengo que incluir para update a las que borre y ya estaban var observaciones_a_updatear = comparador.ObservacionesParaActualizar(observaciones_antiguas, observaciones_nuevas); //FC: estas no tengo que insertarlas mas en el historico var observaciones_para_dar_de_baja = comparador.ObservacionesParaDarDeBaja(observaciones_antiguas, observaciones_nuevas); var observaciones_a_insertar = comparador.ObservacionesParaGuardar(observaciones_antiguas, observaciones_nuevas); //FC:estas no tengo que borrarlas mas var observaciones_a_borrar = comparador.ObservacionesParaDarDeBajaSinInsertarOtra(observaciones_antiguas, observaciones_nuevas); foreach (var e in observaciones_a_insertar) { if (GuardarObservacion(e, usuario).Equals(0)) { registros_no_procesados.Add(e); } } foreach (var e in observaciones_a_updatear) { if (GuardarObservacion(e, usuario).Equals(0)) { registros_no_procesados.Add(e); } } foreach (var e in observaciones_para_dar_de_baja) { var idBaja = CrearBaja(usuario); ActualizarObservacion(e, usuario, idBaja); } foreach (var e in observaciones_a_borrar) { var idBaja = CrearBaja(usuario); if (ActualizarObservacion(e, usuario, idBaja).Equals(0)) { registros_no_procesados.Add(e); } } return(registros_no_procesados); }