package org.compass.gps.device.hibernate.simple.embedded;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.gps.device.hibernate.embedded.HibernateHelper;
import org.compass.gps.device.hibernate.simple.ScrollableSimpleHibernateGpsDeviceTests;
import org.compass.gps.device.hibernate.simple.Simple;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
* @author kimchy
*/
public class EmbeddedHibernateTests extends ScrollableSimpleHibernateGpsDeviceTests {
protected String getHiberanteCfgLocation() {
return "/org/compass/gps/device/hibernate/simple/embedded/hibernate.cfg.xml";
}
protected void setUpCompass() {
compass = HibernateHelper.getCompass(sessionFactory);
}
protected void setUpGpsDevice() {
super.setUpGpsDevice();
// disable mirroring since we work in embedded mode
hibernateGpsDevice.setMirrorDataChanges(false);
}
public void testMirrorWithRollback() throws Exception {
compassGps.index();
Session session = sessionFactory.openSession();
Transaction tr = session.beginTransaction();
// insert a new one
Simple simple = new Simple();
simple.setId(4);
simple.setValue("value4");
session.save("simple", simple);
// delete the second one
simple = (Simple) session.load("simple", 2);
session.delete(simple);
// update the first one
simple = (Simple) session.load("simple", 1);
simple.setValue("updatedValue1");
session.save(simple);
session.flush();
tr.rollback();
session.close();
CompassSession sess = compass.openSession();
CompassTransaction compassTransaction = sess.beginTransaction();
simple = sess.get(Simple.class, 4);
assertNull(simple);
simple = sess.get(Simple.class, 2);
assertNotNull(simple);
simple = sess.load(Simple.class, 1);
assertEquals("value1", simple.getValue());
compassTransaction.commit();
sess.close();
}
}