Search in sources :

Example 36 with OObjectDatabaseTx

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();
}
Also used : OObjectDatabaseTx(com.orientechnologies.orient.object.db.OObjectDatabaseTx) Satellite(com.orientechnologies.orient.test.domain.base.Satellite) Planet(com.orientechnologies.orient.test.domain.base.Planet) ORID(com.orientechnologies.orient.core.id.ORID) Test(org.testng.annotations.Test)

Example 37 with OObjectDatabaseTx

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();
}
Also used : OObjectDatabaseTx(com.orientechnologies.orient.object.db.OObjectDatabaseTx) Satellite(com.orientechnologies.orient.test.domain.base.Satellite) Planet(com.orientechnologies.orient.test.domain.base.Planet) ORID(com.orientechnologies.orient.core.id.ORID) Test(org.testng.annotations.Test)

Example 38 with OObjectDatabaseTx

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();
    }
}
Also used : HashMap(java.util.HashMap) OObjectDatabaseTx(com.orientechnologies.orient.object.db.OObjectDatabaseTx) ArrayList(java.util.ArrayList) ORID(com.orientechnologies.orient.core.id.ORID) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 39 with OObjectDatabaseTx

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();
}
Also used : OObjectDatabaseTx(com.orientechnologies.orient.object.db.OObjectDatabaseTx) Satellite(com.orientechnologies.orient.test.domain.base.Satellite) Planet(com.orientechnologies.orient.test.domain.base.Planet) ORID(com.orientechnologies.orient.core.id.ORID) Test(org.testng.annotations.Test)

Example 40 with OObjectDatabaseTx

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();
    }
}
Also used : OSchema(com.orientechnologies.orient.core.metadata.schema.OSchema) OObjectDatabaseTx(com.orientechnologies.orient.object.db.OObjectDatabaseTx) OClass(com.orientechnologies.orient.core.metadata.schema.OClass) ORID(com.orientechnologies.orient.core.id.ORID) ODocument(com.orientechnologies.orient.core.record.impl.ODocument)

Aggregations

OObjectDatabaseTx (com.orientechnologies.orient.object.db.OObjectDatabaseTx)48 Test (org.testng.annotations.Test)25 ORID (com.orientechnologies.orient.core.id.ORID)15 ODocument (com.orientechnologies.orient.core.record.impl.ODocument)14 HashMap (java.util.HashMap)11 HashSet (java.util.HashSet)11 Map (java.util.Map)9 ORecordId (com.orientechnologies.orient.core.id.ORecordId)8 EnumTest (com.orientechnologies.orient.test.domain.base.EnumTest)8 JavaAttachDetachTestClass (com.orientechnologies.orient.test.domain.base.JavaAttachDetachTestClass)8 Planet (com.orientechnologies.orient.test.domain.base.Planet)8 Satellite (com.orientechnologies.orient.test.domain.base.Satellite)8 Child (com.orientechnologies.orient.test.domain.business.Child)8 Set (java.util.Set)8 ArrayList (java.util.ArrayList)5 Proxy (javassist.util.proxy.Proxy)5 BeforeClass (org.testng.annotations.BeforeClass)5 CycleChild (com.orientechnologies.orient.test.domain.cycle.CycleChild)4 GrandChild (com.orientechnologies.orient.test.domain.cycle.GrandChild)4 LazyChild (com.orientechnologies.orient.test.domain.lazy.LazyChild)4