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 }
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(); }
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 }
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 }
public static void Main(string[] args) { try { Customer.ImportCustomers(); } catch (Exception e) { Console.Out.Write(e.Message); } }
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); }
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(); }
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(); } }
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(); } }
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(); } }
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(); }
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(); } }
public void Test1() { // 1: Agrego el test y saco el main Customer.ImportCustomers(); }