示例#1
0
        public void BuscarTelefonosDuplicadosEnTodosLosAlumnos()
        {
            Alumno local1 = new AlumnoLocal(Legajo.Of("123"), "Lisandro", "Martinez", new DateTime(2019, 1, 1));
            Alumno local2 = new AlumnoLocal(Legajo.Of("1233"), "Pedro", "Martinez", new DateTime(2019, 1, 1));
            Alumno local3 = new AlumnoLocal(Legajo.Of("12344"), "Juan", "Martinez", new DateTime(2019, 1, 1));

            var tel1 = Telefono.Of("011", "1234");
            var tel2 = Telefono.Of("012", "43123");

            local1.AgregarTelefono(tel1);
            local2.AgregarTelefono(tel2);
            local3.AgregarTelefono(tel1);

            List <Alumno> alumnos = new List <Alumno>();

            alumnos.Add(local1);
            alumnos.Add(local2);
            alumnos.Add(local3);

            //SOLO IMPORTA ESTO.
            //Busca en todos los telefonos de los alumnos los que tengan el mismo prefijo y numero.
            //Devuelve una lsita de los alumnos que cumplan con esa condicion.
            //Podes verificar que la lista este vacia para validarlo, si te devuelve un Count distitno de cero
            //podes usar los datos del alumno para tirar una excepcion.

            var list = alumnos.Where(alumno =>
                                     alumno.Telefonos.Any(telefono =>
                                                          telefono.Prefijo == tel1.Prefijo && telefono.Numero == tel1.Numero)).ToList();

            //

            list.Should().ContainInOrder(local1, local3).And.HaveCount(2);
        }