public void update(Progenitor progenitor) { if(progenitor is Padre) { Padre p = (Padre) progenitor; if (p.find(nombre)==null) { padre = null; } else if (madre == null || (p.Esposa!=null && !p.Esposa.Equals(madre))) { madre = p.Esposa; }//if } else if (progenitor is Madre) { Madre m = (Madre)progenitor; if (m.find(nombre) == null) { madre = null; } else if (padre == null || (m.Esposo != null && !m.Esposo.Equals(padre))) { padre = m.Esposo; }//if }//if }
public void crearMatrimonioTest() { Padre p = new Padre("Paco"); Madre m = new Madre("Lola"); m.Esposo = p; Assert.AreEqual(p.Esposa, m, "No funciona el matrimonio"); Assert.AreEqual(m.Esposo, p, "No funciona el matrimonio"); }
public void addTest() { Padre p = new Padre("Juan"); Madre m = new Madre("Lola"); m.Esposo = p; Hijo h = new Hijo("Pedro"); m.add(h); Assert.IsTrue(m.Hijos.Contains(h), "No ha sido agregado el hijo"); Assert.AreEqual(h.Padre, p, "No se ha asignado el padre al hijo"); Assert.AreEqual(h.Madre, m, "No se ha asignado la madre al hijo"); }
public void divorcioNormalTest() { Padre p = new Padre("Paco"); Madre m = new Madre("Lola"); Hijo hijo = new Hijo("Juanito"); m.Esposo = p; m.add(hijo); m.Esposo = null; Assert.IsNull(p.Esposa, "No se han divorciado correctamente"); Assert.AreEqual(p.find(hijo.Nombre), hijo, "No se ha mantenido el hijo al padre"); Assert.IsNull(m.Esposo, "No se han divorciado correctamente"); Assert.IsNull(m.find(hijo.Nombre), "No se ha eliminado el hijo correctamente a la madre"); Assert.AreEqual(hijo.Padre, p, "Se ha eliminado el padre al hijo"); Assert.IsNull(hijo.Madre, "No se ha eliminado la madre al hijo"); }
public void divorcioTormentosoTest() { Madre m = new Madre("Lola"); Padre p1 = new Padre("Juan"); Padre p2 = new Padre("Paco"); Hijo h1 = new Hijo("Carlitos"); Hijo h2 = new Hijo("Oscar"); m.Esposo = p1; m.add(h1); m.add(h2); m.Esposo = p2; Assert.AreEqual(p1.Esposa, null, "No se ha divorciado de Lola"); Assert.AreEqual(p2.Esposa, m, "No se ha realizado el segundo matrimonio"); Assert.AreEqual(m.Esposo, p2, "No se ha realizado el segundo matrimonio"); Assert.IsNull(m.find(h1.Nombre), "No se ha eliminado el hijo correctamente"); Assert.IsNull(m.find(h2.Nombre), "No se ha eliminado el hijo correctamente"); Assert.AreEqual(p1.find(h1.Nombre), h1, "No se ha mantenido el hijo al padre"); Assert.AreEqual(p1.find(h2.Nombre), h2, "No se ha mantenido el hijo al padre"); Assert.AreEqual(h1.Padre, p1, "Se ha eliminado el padre al hijo"); Assert.AreEqual(h2.Padre, p1, "Se ha eliminado el padre al hijo"); Assert.IsNull(h1.Madre, "No se ha eliminado la madre al hijo"); Assert.IsNull(h2.Madre, "No se ha eliminado la madre al hijo"); }
public void divorcioTormentosoTest() { Padre p = new Padre("Paco"); Madre m1 = new Madre("Lola"); Madre m2 = new Madre("Juana"); Hijo h1 = new Hijo("Carlitos"); Hijo h2 = new Hijo("Oscar"); p.Esposa = m1; p.add(h1); p.add(h2); p.Esposa = m2; Assert.AreEqual(m1.Esposo, null, "No se ha divorciado de Paco"); Assert.AreEqual(m2.Esposo, p, "No se ha realizado el segundo matrimonio"); Assert.AreEqual(p.Esposa, m2, "No se ha realizado el segundo matrimonio"); Assert.IsNull(p.find(h1.Nombre), "No se ha eliminado el hijo correctamente"); Assert.IsNull(p.find(h2.Nombre), "No se ha eliminado el hijo correctamente"); Assert.AreEqual(m1.find(h1.Nombre), h1, "No se ha mantenido el hijo a la madre"); Assert.AreEqual(m1.find(h2.Nombre), h2, "No se ha mantenido el hijo a la madre"); Assert.AreEqual(h1.Madre, m1, "Se ha eliminado la madre al hijo"); Assert.AreEqual(h2.Madre, m1, "Se ha eliminado la madre al hijo"); Assert.IsNull(h1.Padre, "No se ha eliminado el padre al hijo"); Assert.IsNull(h2.Padre, "No se ha eliminado el padre al hijo"); }
public void update(Progenitor progenitor) { if (progenitor is Padre) { Padre p = (Padre) progenitor; if ((esposo == null || !p.Equals(esposo)) && (p.Esposa!=null && p.Esposa.Equals(this))) { //Alguien se ha casado con la madre //Si estaba casada eliminamos sus hijos if (esposo != null) { removeAll(); } esposo = p; addAll(esposo.Hijos); notify(); } else if (esposo != null && p.Equals(esposo) && (p.Esposa == null || !p.Esposa.Equals(this))) { //La pareja de la madre se ha divorciado de ella esposo = null; notify(); }//if }//if }
public void matrimonioNormalConHijosTest() { Madre m = new Madre("Paco"); Madre m1 = new Madre("Pepe"); Padre p = new Padre("Lola"); Padre p1 = new Padre("Juana"); Hijo h1 = new Hijo("Carlitos"); Hijo h2 = new Hijo("Oscar"); m.Esposo = p; m.add(h1); m.add(h2); p.Esposa = m1; m.Esposo = p1; Assert.IsNull(p.find(h1.Nombre), "No se ha eliminado el hijo correctamente"); Assert.IsNull(p.find(h2.Nombre), "No se ha eliminado el hijo correctamente"); Assert.AreEqual(m.find(h1.Nombre), h1, "No se ha mantenido el hijo a la madre"); Assert.AreEqual(m.find(h2.Nombre), h2, "No se ha mantenido el hijo a la madre"); Assert.AreEqual(p1.find(h1.Nombre), h1, "No se ha anadido el hijo al nuevo padre"); Assert.AreEqual(p1.find(h2.Nombre), h2, "No se ha anadido el hijo al nuevo padre"); Assert.AreEqual(h1.Padre, p1, "No se ha anadido el padre al hijo"); Assert.AreEqual(h2.Padre, p1, "No se ha anadido el padre al hijo"); Assert.AreEqual(h1.Madre, m, "Se ha eliminado la madre al hijo"); Assert.AreEqual(h2.Madre, m, "Se ha eliminado la madre al hijo"); }
public void findTest() { Padre p = new Padre("Juan"); Madre m = new Madre("Lola"); m.Esposo = p; Hijo h = new Hijo("Pedro"); m.add(h); Assert.AreEqual(m.find(h.Nombre), h, "No se encuentra el hijo"); }
public void removeTest() { Padre p = new Padre("Juan"); Madre m = new Madre("Lola"); m.Esposo = p; Hijo h = new Hijo("Pedro"); m.add(h); m.remove(h.Nombre); Assert.IsNull(m.find(h.Nombre), "No ha sido eliminado el hijo"); Assert.AreEqual(h.Padre, p, "Se ha eliminado el padre al hijo"); Assert.IsNull(h.Madre, "No se ha eliminado la madre al hijo"); }