guy881
11/23/2016 - 10:06 PM

ListMappingTest.java

public class ListMappingTest {

    private static SessionFactory factory;

    @Before
    public void setUp() {
        try {
            Configuration configuration = new Configuration().configure();
            StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
            factory = configuration.buildSessionFactory(builder.build());
        } catch (Throwable ex) {
            System.err.println("Failed to create sessionFactory object." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    @Test
    public void createTest() {
        Session session = factory.openSession();
        Transaction tx = null;
        Integer employeeID = null;
        try {
            tx = session.beginTransaction();
            Employee employee = new Employee("Arnold", "Szwarcengezger", 1500);
            ArrayList cert = new ArrayList();
            cert.add(new Certificate("BCA"));
            cert.add(new Certificate("BA"));

            employee.setCertificates(cert);
            employeeID = (Integer) session.save(employee);
            tx.commit();

            Employee employee1
                    = (Employee) session.get(Employee.class, employeeID);

            assertEquals(employee, employee1);

        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }

    }

    @Test
    public void deleteTest() {
        Session session = factory.openSession();
        Transaction tx = null;
        Integer employeeID = null;
        try {
            tx = session.beginTransaction();
            Employee employee = new Employee("Edi", "Marfi", 3500);
            ArrayList cert = new ArrayList();
            cert.add(new Certificate("MA"));
            cert.add(new Certificate("NIEMA"));

            employee.setCertificates(cert);
            employeeID = (Integer) session.save(employee);
            tx.commit();

            // get employee and delete it
            tx = session.beginTransaction();
            Employee employee1
                    = (Employee) session.get(Employee.class, employeeID);
            session.delete(employee1); 
            tx.commit();
            
            Employee removedEmployee
                    = (Employee) session.get(Employee.class, employeeID);
            
            assertEquals(removedEmployee, null);

        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }
}