use of com.orientechnologies.orient.object.db.OObjectDatabaseTx in project orientdb by orientechnologies.
the class ObjectTreeTestSchemaFull method childNLevelUpdateTest.
@Test(dependsOnMethods = "childUpdateTest")
public void childNLevelUpdateTest() {
OObjectDatabaseTx database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
Planet p = database.newInstance(Planet.class);
Planet near = database.newInstance(Planet.class);
Satellite sat = database.newInstance(Satellite.class);
Satellite satNear = database.newInstance(Satellite.class);
sat.setDiameter(50);
sat.setNear(near);
satNear.setDiameter(10);
near.addSatellite(satNear);
p.addSatellite(sat);
database.save(p);
ORID rid = database.getIdentity(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
near = sat.getNear();
satNear = near.getSatellites().get(0);
Assert.assertEquals(satNear.getDiameter(), 10);
satNear.setDiameter(100);
// p.addSatellite(new Satellite("Moon", 70));
// db.save(sat);
database.save(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
near = sat.getNear();
satNear = near.getSatellites().get(0);
Assert.assertEquals(satNear.getDiameter(), 100);
database.close();
}
use of com.orientechnologies.orient.object.db.OObjectDatabaseTx in project orientdb by orientechnologies.
the class ObjectTreeTestSchemaFull method childUpdateTest.
@Test(dependsOnMethods = "testEnumListWithCustomTypes")
public void childUpdateTest() {
OObjectDatabaseTx database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
Planet p = database.newInstance(Planet.class);
Satellite sat = database.newInstance(Satellite.class);
p.setName("Earth");
p.setDistanceSun(1000);
sat.setDiameter(50);
p.addSatellite(sat);
database.save(p);
ORID rid = database.getIdentity(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
Assert.assertEquals(sat.getDiameter(), 50);
Assert.assertEquals(p.getDistanceSun(), 1000);
Assert.assertEquals(p.getName(), "Earth");
sat.setDiameter(500);
// p.addSatellite(new Satellite("Moon", 70));
// db.save(sat);
database.save(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
Assert.assertEquals(sat.getDiameter(), 500);
Assert.assertEquals(p.getDistanceSun(), 1000);
Assert.assertEquals(p.getName(), "Earth");
database.close();
}
use of com.orientechnologies.orient.object.db.OObjectDatabaseTx in project orientdb by orientechnologies.
the class ObjectTreeTest method testCustomTypesDatabaseNewInstance.
@Test(dependsOnMethods = "testCustomTypes")
public void testCustomTypesDatabaseNewInstance() {
OObjectDatabaseTx database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
ORID rid = null;
try {
// init counters
serialized = 0;
unserialized = 0;
List<CustomType> customTypesList = new ArrayList<CustomType>();
customTypesList.add(new CustomType(102L));
Set<CustomType> customTypeSet = new HashSet<CustomType>();
customTypeSet.add(new CustomType(103L));
Map<Long, CustomType> customTypeMap = new HashMap<Long, CustomType>();
customTypeMap.put(1L, new CustomType(104L));
CustomClass pojo = database.newInstance(CustomClass.class, "test", 33L, new CustomType(101L), customTypesList, customTypeSet, customTypeMap);
Assert.assertEquals(serialized, 4);
Assert.assertEquals(unserialized, 0);
pojo = database.save(pojo);
rid = database.getIdentity(pojo);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
pojo = database.load(rid);
Assert.assertEquals(unserialized, 0);
pojo.getCustom();
Assert.assertEquals(unserialized, 1);
Assert.assertTrue(pojo.getCustom() instanceof CustomType);
pojo.getCustomTypeList().iterator().next();
Assert.assertEquals(unserialized, 2);
Assert.assertTrue(pojo.getCustomTypeList().iterator().next() instanceof CustomType);
unserialized--;
pojo.getCustomTypeSet().iterator().next();
Assert.assertEquals(unserialized, 3);
Assert.assertTrue(pojo.getCustomTypeSet().iterator().next() instanceof CustomType);
unserialized--;
pojo.getCustomTypeMap().get(1L);
Assert.assertEquals(serialized, 4);
Assert.assertEquals(unserialized, 4);
Assert.assertTrue(pojo.getCustomTypeMap().get(1L) instanceof CustomType);
} finally {
database.close();
}
}
use of com.orientechnologies.orient.object.db.OObjectDatabaseTx in project orientdb by orientechnologies.
the class ObjectTreeTest method childNLevelUpdateTest.
@Test(dependsOnMethods = "childUpdateTest")
public void childNLevelUpdateTest() {
OObjectDatabaseTx database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
Planet p = database.newInstance(Planet.class);
Planet near = database.newInstance(Planet.class);
Satellite sat = database.newInstance(Satellite.class);
Satellite satNear = database.newInstance(Satellite.class);
sat.setDiameter(50);
sat.setNear(near);
satNear.setDiameter(10);
near.addSatellite(satNear);
p.addSatellite(sat);
database.save(p);
ORID rid = database.getIdentity(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
near = sat.getNear();
satNear = near.getSatellites().get(0);
Assert.assertEquals(satNear.getDiameter(), 10);
satNear.setDiameter(100);
// p.addSatellite(new Satellite("Moon", 70));
// db.save(sat);
database.save(p);
database.close();
database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
p = database.load(rid);
sat = p.getSatellites().get(0);
near = sat.getNear();
satNear = near.getSatellites().get(0);
Assert.assertEquals(satNear.getDiameter(), 100);
database.close();
}
use of com.orientechnologies.orient.object.db.OObjectDatabaseTx in project orientdb by orientechnologies.
the class TransactionConsistencyTest method testTransactionsCache.
public void testTransactionsCache() throws Exception {
OObjectDatabaseTx database = new OObjectDatabaseTx(url);
database.open("admin", "admin");
try {
Assert.assertFalse(database.getTransaction().isActive());
OSchema schema = database.getMetadata().getSchema();
OClass classA = schema.createClass("TransA");
classA.createProperty("name", OType.STRING);
ODocument doc = new ODocument(classA);
doc.field("name", "test1");
doc.save();
ORID orid = doc.getIdentity();
database.begin();
Assert.assertTrue(database.getTransaction().isActive());
doc = orid.getRecord();
Assert.assertEquals("test1", doc.field("name"));
doc.field("name", "test2");
doc = orid.getRecord();
Assert.assertEquals("test2", doc.field("name"));
// There is NO SAVE!
database.commit();
doc = orid.getRecord();
Assert.assertEquals("test1", doc.field("name"));
} finally {
database.close();
}
}
Aggregations