package br.com.caelum.stella.usertype; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.junit.BeforeClass; import org.junit.Test; import br.com.caelum.stella.tinytype.CPF; import static org.junit.Assert.assertEquals; public class CpfUserTypeTest { private static SessionFactory factory; @BeforeClass public static void geraBanco(){ Configuration cfg = new Configuration(); cfg.addAnnotatedClass(PessoaFisica.class); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build(); factory = cfg.buildSessionFactory(serviceRegistry); } @Test public void shouldSaveAndLoadEntityMappedWithCpfUserType(){ Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); PessoaFisica pessoa = new PessoaFisica(); CPF cpf = new CPF("555.555.555-55"); pessoa.setCpf(cpf); session.save(pessoa); transaction.commit(); session.flush(); session.close(); session = factory.openSession(); Long id = pessoa.getId(); PessoaFisica load = (PessoaFisica) session.load(PessoaFisica.class, id); assertEquals(cpf, load.getCpf()); } }