package org.compass.core.test.managedid.nostore;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.Resource;
import org.compass.core.test.AbstractTestCase;
/**
* @author kimchy
*/
public class NoStoreManagedIdTests extends AbstractTestCase {
protected String[] getMappings() {
return new String[] {"managedid/nostore/mapping.cpm.xml"};
}
public void testNoStoreOnProeprtyLevel() {
verifySimpleNoStoreId("a");
}
public void testNoStoreOnClassMappingLevel() {
verifySimpleNoStoreId("a1");
}
public void testAutoWorks() {
CompassSession session = openSession();
CompassTransaction tr = session.beginTransaction();
A a = new A();
a.id = 1;
a.value1 = "value1";
a.value2 = "value2";
session.save("a2", a);
a = (A) session.load("a2", "1");
assertEquals(1, a.id);
assertEquals("value1", a.value1);
assertEquals("value2", a.value2);
Resource resource = session.loadResource("a2", "1");
assertNull(resource.getValue("$/a2/value2"));
tr.commit();
session.close();
}
public void verifySimpleNoStoreId(String alias) {
CompassSession session = openSession();
CompassTransaction tr = session.beginTransaction();
A a = new A();
a.id = 1;
a.value1 = "value1";
a.value2 = "value2";
session.save(alias, a);
a = (A) session.load(alias, "1");
assertEquals(1, a.id);
assertNull(a.value1);
assertEquals("value2", a.value2);
Resource resource = session.loadResource(alias, "1");
assertNull(resource.getValue("$/" + alias + "/value2"));
tr.commit();
session.close();
}
}