コード例 #1
0
 public void Test1()
 {
     // 1: Agrego el test y saco el main
     Customer.ImportCustomers();
     // 2: Agrego asserts sobre cantidad de customers... pero no puedo
     var customers = session
 }
コード例 #2
0
        public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();

            Customer.ImportCustomers(session);
            // 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();

            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();
            Assert.AreEqual(1, customers.Count);

            session.Close();
        }
コード例 #3
0
 public void Test1()
 {
     // 1: Agrego el test y saco el main
     Customer.ImportCustomers(Customer.CreateSession());
     // 2: Agrego asserts sobre cantidad de customers... pero no puedo
     // 3: Comento la linea para que el test corra
     //var customers = session
 }
コード例 #4
0
        public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();

            Customer.ImportCustomers(session);
            // 2: Agrego asserts sobre cantidad de customers... pero no puedo
            // 3: Comento la linea para que el test corra
            //var customers = session
        }
コード例 #5
0
 public static void Main(string[] args)
 {
     try
     {
         Customer.ImportCustomers();
     }
     catch (Exception e)
     {
         Console.Out.Write(e.Message);
     }
 }
コード例 #6
0
        public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();

            Customer.ImportCustomers(session);
            // 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!
            //var customers = session.CreateCriteria<Customer>().List();
            //Assert.AreEqual(2,customers.Count);
        }
コード例 #7
0
        public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();

            Customer.ImportCustomers(session);
            // 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);

            session.Close();
        }
コード例 #8
0
        public void Test1()
        {
            // Bad Smell 4: Que el test conozca como conectarse!
            using (_session = CreateSession())
                using (var inputStream = ValidDataStream())
                {
                    var transaction = _session.BeginTransaction();
                    Customer.ImportCustomers(_session, inputStream);

                    Assert.AreEqual(2, _session.CreateCriteria <Customer>().List <Customer>().Count);

                    AssertPepeSanchezWasImportedCorrectly();
                    AssertJuanPerezWasImportedCorrectly();

                    transaction.Commit();
                }
        }
コード例 #9
0
        public void Test1()
        {
            // Bad Smell 4: Que el test conozca como conectarse!
            // 31: Uso idiom using
            // 32: Vuelvo para atras, introduce field
            using (_session = CreateSession())
                using (var inputStream = ValidDataStream())
                {
                    var transaction = _session.BeginTransaction();
                    Customer.ImportCustomers(_session, inputStream);

                    // 33: Vuelvo a hacer los refactors
                    Assert.AreEqual(2, _session.CreateCriteria <Customer>().List <Customer>().Count);

                    AssertPepeSanchezWasImportedCorrectly();
                    AssertJuanPerezWasImportedCorrectly();

                    transaction.Commit();
                }
        }
コード例 #10
0
        public void Test1()
        {
            // Bad Smell 4: Que el test conozca como conectarse!
            // 31: Uso idiom using
            using (var session = CreateSession())
                using (var inputStream = ValidDataStream())
                {
                    var transaction = session.BeginTransaction();
                    Customer.ImportCustomers(session, inputStream);

                    // 33: Inline
                    Assert.AreEqual(2, session.CreateCriteria <Customer>().List <Customer>().Count);

                    // 32: Doy semantica a los asserts
                    AssertPepeSanchezWasImportedCorrectly(session);
                    AssertJuanPerezWasImportedCorrectly(session);

                    transaction.Commit();
                }
        }
コード例 #11
0
        public void Test1()
        {
            // 1: Agrego el test y saco el main
            // 8: Introduce Variable
            ISession session = Customer.CreateSession();
            // 24: No tiene sentido stream() en Customer, lo muevo aca
            // 25: Introduce variable
            // 26: Saco archivo. Inline de stream. Inline de lineReader. Generalize Type en ImportCustomer.
            // rename stream1 a inputStream
            var inputStream = new StringReader("C,Pepe,Sanchez,D,22333444\n" +
                                               "A,San Martin,3322,Olivos,1636,BsAs\n" +
                                               "A,Maipu,888,Florida,1122,Buenos Aires\n" +
                                               "C,Juan,Perez,C,23-25666777-9\n" +
                                               "A,Alem,1122,CABA,1001,CABA");

            Customer.ImportCustomers(session, inputStream);
            // 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();
            inputStream.Close();
        }
コード例 #12
0
        public void Test1()
        {
            // Bad Smell 4: Que el test conozca como conectarse!
            // 31: Uso idiom using
            using (var session = CreateSession())
                using (var inputStream = ValidDataStream())
                {
                    var transaction = session.BeginTransaction();
                    Customer.ImportCustomers(session, inputStream);

                    var customers = session.CreateCriteria <Customer>().List <Customer>();
                    Assert.AreEqual(2, customers.Count);

                    customers = session.CreateCriteria <Customer>().
                                Add(Restrictions.Eq("IdentificationType", "D")).
                                Add(Restrictions.Eq("IdentificationNumber", "22333444")).List <Customer>();
                    Assert.AreEqual(1, customers.Count);

                    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!

                    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);

                    // 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);

                    // 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);

                    transaction.Commit();
                }
        }
コード例 #13
0
 public void Test1()
 {
     // 1: Agrego el test y saco el main
     Customer.ImportCustomers();
 }