Search in sources :

Example 36 with Child

use of com.orientechnologies.orient.test.domain.business.Child in project orientdb by orientechnologies.

the class ObjectTreeTest method testCascadeDeleteMap.

@Test(dependsOnMethods = "testCascadeDeleteCollections")
public void testCascadeDeleteMap() {
    JavaCascadeDeleteTestClass test = database.newInstance(JavaCascadeDeleteTestClass.class);
    Child mapChild1 = database.newInstance(Child.class);
    mapChild1.setName("map1");
    test.getChildren().put("1", mapChild1);
    Child mapChild2 = database.newInstance(Child.class);
    mapChild2.setName("map2");
    test.getChildren().put("2", mapChild2);
    Child mapChild3 = database.newInstance(Child.class);
    mapChild3.setName("map3");
    test.getChildren().put("3", mapChild3);
    database.save(test);
    ORID testRid = database.getRecordByUserObject(test, false).getIdentity();
    ORID map1Rid = database.getRecordByUserObject(mapChild1, false).getIdentity();
    ORID map2Rid = database.getRecordByUserObject(mapChild2, false).getIdentity();
    ORID map3Rid = database.getRecordByUserObject(mapChild3, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    database.delete(testRid);
    mapChild1 = database.load(map1Rid);
    mapChild2 = database.load(map2Rid);
    mapChild3 = database.load(map3Rid);
    Assert.assertNull(mapChild1);
    Assert.assertNull(mapChild2);
    Assert.assertNull(mapChild3);
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    // MAP UPDATE TEST
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    mapChild1 = database.newInstance(Child.class);
    mapChild1.setName("map1");
    test.getChildren().put("1", mapChild1);
    mapChild2 = database.newInstance(Child.class);
    mapChild2.setName("map2");
    test.getChildren().put("2", mapChild2);
    mapChild3 = database.newInstance(Child.class);
    mapChild3.setName("map3");
    test.getChildren().put("3", mapChild3);
    Child mapChild4 = database.newInstance(Child.class);
    mapChild4.setName("map4");
    test.getChildren().put("4", mapChild4);
    Child mapChild5 = database.newInstance(Child.class);
    mapChild5.setName("map5");
    test.getChildren().put("5", mapChild5);
    database.save(test);
    testRid = database.getIdentity(test);
    map1Rid = database.getRecordByUserObject(mapChild1, false).getIdentity();
    map2Rid = database.getRecordByUserObject(mapChild2, false).getIdentity();
    map3Rid = database.getRecordByUserObject(mapChild3, false).getIdentity();
    ORID map4Rid = database.getRecordByUserObject(mapChild4, false).getIdentity();
    ORID map5Rid = database.getRecordByUserObject(mapChild5, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test = database.load(testRid);
    Assert.assertNotNull(test.getChildren().get("1"));
    Assert.assertNotNull(test.getChildren().get("2"));
    Assert.assertNotNull(test.getChildren().get("3"));
    Assert.assertNotNull(test.getChildren().get("4"));
    Assert.assertNotNull(test.getChildren().get("5"));
    test.getChildren().remove("5");
    test.getChildren().put("1", mapChild1);
    test.getChildren().put("2", mapChild1);
    test.getChildren().put("3", null);
    test.getChildren().remove("4");
    test.getChildren().put("3", mapChild5);
    database.save(test);
    mapChild1 = database.load(map1Rid);
    mapChild2 = database.load(map2Rid);
    mapChild3 = database.load(map3Rid);
    mapChild4 = database.load(map4Rid);
    mapChild5 = database.load(map5Rid);
    Assert.assertNotNull(mapChild1);
    Assert.assertNull(mapChild2);
    Assert.assertNull(mapChild3);
    Assert.assertNull(mapChild4);
    Assert.assertNotNull(mapChild5);
    database.delete(test);
}
Also used : JavaCascadeDeleteTestClass(com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass) ORID(com.orientechnologies.orient.core.id.ORID) Child(com.orientechnologies.orient.test.domain.business.Child) IdentityChild(com.orientechnologies.orient.test.domain.business.IdentityChild) Test(org.testng.annotations.Test)

Example 37 with Child

use of com.orientechnologies.orient.test.domain.business.Child in project orientdb by orientechnologies.

the class CRUDObjectPhysicalTest method mapObjectsLinkUpdateJavaNewInstanceTest.

@Test(dependsOnMethods = "mapObjectsLinkUpdateDatabaseNewInstanceTest")
public void mapObjectsLinkUpdateJavaNewInstanceTest() {
    // TEST WITH NEW INSTANCE
    JavaComplexTestClass p = new JavaComplexTestClass();
    p.setName("Fringe");
    Child c = new Child();
    c.setName("Peter");
    Child c1 = new Child();
    c1.setName("Walter");
    Child c2 = new Child();
    c2.setName("Olivia");
    Child c3 = new Child();
    c3.setName("Astrid");
    p.getChildren().put(c.getName(), c);
    p.getChildren().put(c1.getName(), c1);
    p.getChildren().put(c2.getName(), c2);
    p.getChildren().put(c3.getName(), c3);
    p = database.save(p);
    ORID rid = new ORecordId(p.getId());
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    JavaComplexTestClass loaded = database.load(rid);
    for (String key : loaded.getChildren().keySet()) {
        Assert.assertTrue(key.equals("Peter") || key.equals("Walter") || key.equals("Olivia") || key.equals("Astrid"));
        Assert.assertTrue(loaded.getChildren().get(key) instanceof Child);
        Assert.assertTrue(loaded.getChildren().get(key).getName().equals(key));
        if (key.equals("Peter")) {
            Assert.assertTrue(loaded.getChildren().get(key).getName().equals("Peter"));
        } else if (key.equals("Walter")) {
            Assert.assertTrue(loaded.getChildren().get(key).getName().equals("Walter"));
        } else if (key.equals("Olivia")) {
            Assert.assertTrue(loaded.getChildren().get(key).getName().equals("Olivia"));
        } else if (key.equals("Astrid")) {
            Assert.assertTrue(loaded.getChildren().get(key).getName().equals("Astrid"));
        }
    }
    database.setLazyLoading(false);
    for (JavaComplexTestClass reloaded : database.browseClass(JavaComplexTestClass.class).setFetchPlan("*:-1")) {
        database.reload(reloaded);
        Child c4 = new Child();
        c4.setName("The Observer");
        reloaded.getChildren().put(c4.getName(), c4);
        database.save(reloaded);
    }
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    for (JavaComplexTestClass reloaded : database.browseClass(JavaComplexTestClass.class).setFetchPlan("*:-1")) {
        database.reload(reloaded);
        Assert.assertTrue(reloaded.getChildren().containsKey("The Observer"));
        Assert.assertTrue(reloaded.getChildren().get("The Observer") != null);
        Assert.assertEquals(reloaded.getChildren().get("The Observer").getName(), "The Observer");
        Assert.assertTrue(database.getIdentity(reloaded.getChildren().get("The Observer")).isPersistent() && database.getIdentity(reloaded.getChildren().get("The Observer")).isValid());
    }
}
Also used : ORID(com.orientechnologies.orient.core.id.ORID) Child(com.orientechnologies.orient.test.domain.business.Child) ORecordId(com.orientechnologies.orient.core.id.ORecordId) Test(org.testng.annotations.Test)

Example 38 with Child

use of com.orientechnologies.orient.test.domain.business.Child in project orientdb by orientechnologies.

the class CRUDObjectPhysicalTest method collectionsDocumentTypeTestPhaseOne.

@Test(dependsOnMethods = "testSimpleArrayTypes")
public void collectionsDocumentTypeTestPhaseOne() {
    JavaComplexTestClass a = database.newInstance(JavaComplexTestClass.class);
    for (int i = 0; i < 3; i++) {
        a.getList().add(new Child());
        a.getSet().add(new Child());
        a.getChildren().put("" + i, new Child());
    }
    a = database.save(a);
    ORID rid = database.getIdentity(a);
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    List<JavaComplexTestClass> agendas = database.query(new OSQLSynchQuery<JavaComplexTestClass>("SELECT FROM " + rid));
    JavaComplexTestClass testLoadedEntity = agendas.get(0);
    ODocument doc = database.getRecordByUserObject(testLoadedEntity, false);
    checkCollectionImplementations(doc);
    testLoadedEntity = database.save(testLoadedEntity);
    database.freeze(false);
    database.release();
    testLoadedEntity = database.reload(testLoadedEntity, "*:-1", true);
    doc = database.getRecordByUserObject(testLoadedEntity, false);
    checkCollectionImplementations(doc);
}
Also used : ORID(com.orientechnologies.orient.core.id.ORID) Child(com.orientechnologies.orient.test.domain.business.Child) ODocument(com.orientechnologies.orient.core.record.impl.ODocument) Test(org.testng.annotations.Test)

Example 39 with Child

use of com.orientechnologies.orient.test.domain.business.Child in project orientdb by orientechnologies.

the class CRUDObjectPhysicalTest method mapObjectsLinkTwoSaveTest.

@Test(dependsOnMethods = "mapObjectsLinkTest")
public void mapObjectsLinkTwoSaveTest() {
    JavaComplexTestClass p = new JavaComplexTestClass();
    p.setName("Silvester");
    p = database.save(p);
    Child c1 = new Child();
    c1.setName("John");
    Child c2 = new Child();
    c2.setName("Jack");
    p.getChildren().put("first", c1);
    p.getChildren().put("second", c2);
    database.save(p);
    Child c3 = new Child();
    c3.setName("Olivia");
    Child c4 = new Child();
    c4.setName("Peter");
    p.getChildren().put("third", c3);
    p.getChildren().put("fourth", c4);
    database.save(p);
    List<Child> cresult = database.query(new OSQLSynchQuery<Child>("select * from Child"));
    Assert.assertTrue(cresult.size() > 0);
    ORID rid = new ORecordId(p.getId());
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    JavaComplexTestClass loaded = database.load(rid);
    Assert.assertEquals(loaded.getChildren().get("first").getName(), c1.getName());
    Assert.assertEquals(loaded.getChildren().get("second").getName(), c2.getName());
    Assert.assertEquals(loaded.getChildren().get("third").getName(), c3.getName());
    Assert.assertEquals(loaded.getChildren().get("fourth").getName(), c4.getName());
}
Also used : ORID(com.orientechnologies.orient.core.id.ORID) Child(com.orientechnologies.orient.test.domain.business.Child) ORecordId(com.orientechnologies.orient.core.id.ORecordId) Test(org.testng.annotations.Test)

Example 40 with Child

use of com.orientechnologies.orient.test.domain.business.Child in project orientdb by orientechnologies.

the class CRUDObjectPhysicalTest method mapObjectsSetEmbeddedTest.

@Test(dependsOnMethods = "mapObjectsListEmbeddedTest")
public void mapObjectsSetEmbeddedTest() {
    List<Child> cresult = database.query(new OSQLSynchQuery<Child>("select * from Child"));
    int childSize = cresult.size();
    JavaComplexTestClass p = database.newInstance(JavaComplexTestClass.class);
    p.setName("Silvester");
    Child c = database.newInstance(Child.class);
    c.setName("John");
    Child c1 = database.newInstance(Child.class);
    c1.setName("Jack");
    Child c2 = database.newInstance(Child.class);
    c2.setName("Bob");
    Child c3 = database.newInstance(Child.class);
    c3.setName("Sam");
    Child c4 = database.newInstance(Child.class);
    c4.setName("Dean");
    p.getEmbeddedSet().add(c);
    p.getEmbeddedSet().add(c1);
    p.getEmbeddedSet().add(c2);
    p.getEmbeddedSet().add(c3);
    p.getEmbeddedSet().add(c4);
    database.save(p);
    cresult = database.query(new OSQLSynchQuery<Child>("select * from Child"));
    Assert.assertTrue(cresult.size() == childSize);
    ORID rid = new ORecordId(p.getId());
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    JavaComplexTestClass loaded = database.load(rid);
    Assert.assertEquals(loaded.getEmbeddedSet().size(), 5);
    Iterator<Child> it = loaded.getEmbeddedSet().iterator();
    while (it.hasNext()) {
        Child loadedC = it.next();
        Assert.assertTrue(database.getRecordByUserObject(loadedC, false).isEmbedded());
        Assert.assertTrue(loadedC instanceof Child);
        Assert.assertTrue(loadedC.getName().equals("John") || loadedC.getName().equals("Jack") || loadedC.getName().equals("Bob") || loadedC.getName().equals("Sam") || loadedC.getName().equals("Dean"));
    }
}
Also used : OSQLSynchQuery(com.orientechnologies.orient.core.sql.query.OSQLSynchQuery) ORID(com.orientechnologies.orient.core.id.ORID) Child(com.orientechnologies.orient.test.domain.business.Child) ORecordId(com.orientechnologies.orient.core.id.ORecordId) Test(org.testng.annotations.Test)

Aggregations

Child (com.orientechnologies.orient.test.domain.business.Child)44 Test (org.testng.annotations.Test)40 ORID (com.orientechnologies.orient.core.id.ORID)36 ORecordId (com.orientechnologies.orient.core.id.ORecordId)24 ODocument (com.orientechnologies.orient.core.record.impl.ODocument)16 IdentityChild (com.orientechnologies.orient.test.domain.business.IdentityChild)10 OSQLSynchQuery (com.orientechnologies.orient.core.sql.query.OSQLSynchQuery)8 OObjectDatabaseTx (com.orientechnologies.orient.object.db.OObjectDatabaseTx)8 EnumTest (com.orientechnologies.orient.test.domain.base.EnumTest)8 JavaAttachDetachTestClass (com.orientechnologies.orient.test.domain.base.JavaAttachDetachTestClass)8 HashMap (java.util.HashMap)8 HashSet (java.util.HashSet)8 Map (java.util.Map)8 Set (java.util.Set)8 JavaCascadeDeleteTestClass (com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass)6 JavaComplexTestClass (com.orientechnologies.orient.test.domain.base.JavaComplexTestClass)4 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 Proxy (javassist.util.proxy.Proxy)4