public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();

            Customer.ImportCustomers(session, Customer.stream());
            // 2: Agrego asserts sobre cantidad de customers... pero no puedo
            // 3: Comento la linea para que el test corra
            // 9: Ahora si puedo usar session, pero el test falla porque la session esta cerrada!
            // 12: ahora si asserto
            var customers = session.CreateCriteria <Customer>().List <Customer>();

            Assert.AreEqual(2, customers.Count);
            // 13: No tiene sentido CloseSession en Customer, lo muevo aca
            // 14: No tiene sentido el CloseSession! hago Inline

            // 15: Me aseguro que uno de ellos sea Pepe Sanchez
            customers = session.CreateCriteria <Customer>().
                        Add(Restrictions.Eq("IdentificationType", "D")).
                        Add(Restrictions.Eq("IdentificationNumber", "22333444")).List <Customer>();
            Assert.AreEqual(1, customers.Count);
            // 16: Asserto sobre los datos de Pepe Sanchez
            var customer = customers[0];

            Assert.AreEqual("Pepe", customer.FirstName);
            Assert.AreEqual("Sanchez", customer.LastName);
            Assert.AreEqual("D", customer.IdentificationType);
            Assert.AreEqual("22333444", customer.IdentificationNumber);
            Assert.AreEqual(2, customer.NumberOfAddress()); // No rompo encapsulamiento!

            // 17: Me aseguro que las direcciones sean correctas
            var address = customer.AddressAt("San Martin"); // No rompo encapsulamiento!

            Assert.AreEqual(3322, address.StreetNumber);
            Assert.AreEqual("Olivos", address.Town);
            Assert.AreEqual(1636, address.ZipCode);
            Assert.AreEqual("BsAs", address.Province);

            // 18: Me aseguro sobre la otra direccion
            // Bad Smell 1: Copy & Paste
            address = customer.AddressAt("Maipu");
            Assert.AreEqual(888, address.StreetNumber);
            Assert.AreEqual("Florida", address.Town);
            Assert.AreEqual(1122, address.ZipCode);
            Assert.AreEqual("Buenos Aires", address.Province);

            // 19: Me aseguro que Juan Perez haya sido importando bien
            // Bad Smell 2: Otro copy & paste
            // Bad Smell 3: Como se busca esta en el test!
            customers = session.CreateCriteria <Customer>().
                        Add(Restrictions.Eq("IdentificationType", "C")).
                        Add(Restrictions.Eq("IdentificationNumber", "23-25666777-9")).List <Customer>();
            Assert.AreEqual(1, customers.Count);

            customer = customers[0];
            Assert.AreEqual("Juan", customer.FirstName);
            Assert.AreEqual("Perez", customer.LastName);
            Assert.AreEqual("C", customer.IdentificationType);
            Assert.AreEqual("23-25666777-9", customer.IdentificationNumber);
            Assert.AreEqual(1, customer.NumberOfAddress());

            address = customer.AddressAt("Alem");
            Assert.AreEqual(1122, address.StreetNumber);
            Assert.AreEqual("CABA", address.Town);
            Assert.AreEqual(1001, address.ZipCode);
            Assert.AreEqual("CABA", address.Province);

            session.Close();
        }