示例#1
0
        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
        }
示例#2
0
 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");
 }
示例#3
0
 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");
 }
示例#4
0
        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");
        }
示例#5
0
        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");
        }
示例#6
0
        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");
        }
示例#7
0
        public void update(Progenitor progenitor)
        {
            if (progenitor is Madre)
            {

                Madre m = (Madre) progenitor;

                if((esposa == null || !m.Equals(Esposa)) && (m.Esposo!=null && m.Esposo.Equals(this)))
                {

                    //Alguien se ha casado con el padre
                    //Si  estaba casado eliminamos sus hijos
                    if (esposa != null)
                    {
                        removeAll();
                    }
                    esposa = m;
                    addAll(esposa.Hijos);
                    notify();

                }
                else if (esposa != null && m.Equals(esposa) && (m.Esposo==null || !m.Esposo.Equals(this)))
                {

                    //La pareja del padre se ha divorciado de el
                    esposa = null;
                    notify();

                }//if
            }//if
        }
示例#8
0
        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");
        }
示例#9
0
 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");
 }
示例#10
0
 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");
 }