Search in sources :

Example 1 with JavaCascadeDeleteTestClass

use of com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass in project orientdb by orientechnologies.

the class ObjectTreeTestSchemaFull method testCascadeDeleteSimpleObject.

@Test(dependsOnMethods = "testCollectionsRemove")
public void testCascadeDeleteSimpleObject() {
    JavaCascadeDeleteTestClass test = database.newInstance(JavaCascadeDeleteTestClass.class);
    JavaSimpleTestClass simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    ORID testRid = database.getRecordByUserObject(test, false).getIdentity();
    ORID simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    database.delete(testRid);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    // TEST SET NULL
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    testRid = database.getRecordByUserObject(test, false).getIdentity();
    simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test.setSimpleClass(null);
    database.save(test);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    database.delete(test);
    // TEST CHANGE NEW RECORD
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    testRid = database.getRecordByUserObject(test, false).getIdentity();
    simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    simple = database.newInstance(JavaSimpleTestClass.class);
    database.save(simple);
    test.setSimpleClass(simple);
    database.save(test);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    database.delete(test);
}
Also used : JavaCascadeDeleteTestClass(com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass) JavaSimpleTestClass(com.orientechnologies.orient.test.domain.base.JavaSimpleTestClass) ORID(com.orientechnologies.orient.core.id.ORID) Test(org.testng.annotations.Test)

Example 2 with JavaCascadeDeleteTestClass

use of com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass in project orientdb by orientechnologies.

the class ObjectTreeTest method testCascadeDeleteCollections.

@Test(dependsOnMethods = "testCascadeDeleteSimpleObject")
public void testCascadeDeleteCollections() {
    JavaCascadeDeleteTestClass test = database.newInstance(JavaCascadeDeleteTestClass.class);
    Child listChild1 = database.newInstance(Child.class);
    listChild1.setName("list1");
    test.getList().add(listChild1);
    Child listChild2 = database.newInstance(Child.class);
    listChild2.setName("list2");
    test.getList().add(listChild2);
    Child listChild3 = database.newInstance(Child.class);
    listChild3.setName("list3");
    test.getList().add(listChild3);
    Child setChild1 = database.newInstance(Child.class);
    setChild1.setName("set1");
    test.getSet().add(setChild1);
    Child setChild2 = database.newInstance(Child.class);
    setChild2.setName("set2");
    test.getSet().add(setChild2);
    Child setChild3 = database.newInstance(Child.class);
    setChild3.setName("set3");
    test.getSet().add(setChild3);
    database.save(test);
    ORID testRid = database.getRecordByUserObject(test, false).getIdentity();
    ORID list1Rid = database.getRecordByUserObject(listChild1, false).getIdentity();
    ORID list2Rid = database.getRecordByUserObject(listChild2, false).getIdentity();
    ORID list3Rid = database.getRecordByUserObject(listChild3, false).getIdentity();
    ORID set1Rid = database.getRecordByUserObject(setChild1, false).getIdentity();
    ORID set2Rid = database.getRecordByUserObject(setChild2, false).getIdentity();
    ORID set3Rid = database.getRecordByUserObject(setChild3, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    database.delete(testRid);
    listChild1 = database.load(list1Rid);
    listChild2 = database.load(list2Rid);
    listChild3 = database.load(list3Rid);
    setChild1 = database.load(set1Rid);
    setChild2 = database.load(set2Rid);
    setChild3 = database.load(set3Rid);
    Assert.assertNull(listChild1);
    Assert.assertNull(listChild2);
    Assert.assertNull(listChild3);
    Assert.assertNull(setChild1);
    Assert.assertNull(setChild2);
    Assert.assertNull(setChild3);
    // LIST UPDATE TEST
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    listChild1 = database.newInstance(Child.class);
    listChild1.setName("list1");
    test.getList().add(listChild1);
    listChild2 = database.newInstance(Child.class);
    listChild2.setName("list2");
    test.getList().add(listChild2);
    listChild3 = database.newInstance(Child.class);
    listChild3.setName("list3");
    test.getList().add(listChild3);
    Child listChild4 = database.newInstance(Child.class);
    listChild4.setName("list4");
    test.getList().add(listChild4);
    Child listChildDel = database.newInstance(Child.class);
    listChildDel.setName("list4");
    test.getList().add(listChildDel);
    setChild1 = database.newInstance(Child.class);
    setChild1.setName("set1");
    test.getSet().add(setChild1);
    setChild2 = database.newInstance(Child.class);
    setChild2.setName("set2");
    test.getSet().add(setChild2);
    setChild3 = database.newInstance(Child.class);
    setChild3.setName("set3");
    test.getSet().add(setChild3);
    Child setChild4 = database.newInstance(Child.class);
    setChild4.setName("set4");
    test.getSet().add(setChild4);
    database.save(test);
    testRid = database.getRecordByUserObject(test, false).getIdentity();
    list1Rid = database.getRecordByUserObject(listChild1, false).getIdentity();
    list2Rid = database.getRecordByUserObject(listChild2, false).getIdentity();
    list3Rid = database.getRecordByUserObject(listChild3, false).getIdentity();
    ORID list3Del = database.getRecordByUserObject(listChildDel, false).getIdentity();
    ORID list4Rid = database.getRecordByUserObject(listChild4, false).getIdentity();
    set1Rid = database.getRecordByUserObject(setChild1, false).getIdentity();
    set2Rid = database.getRecordByUserObject(setChild2, false).getIdentity();
    set3Rid = database.getRecordByUserObject(setChild3, false).getIdentity();
    ORID set4Rid = database.getRecordByUserObject(setChild4, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test = database.load(testRid);
    test.getList().remove(listChild4);
    test.getList().remove(0);
    test.getList().remove(listChild3);
    test.getList().add(listChild4);
    Iterator<Child> it = test.getList().iterator();
    it.next();
    it.remove();
    test.getSet().remove(setChild1);
    test.getSet().remove(setChild4);
    Assert.assertFalse(test.getSet().contains(setChild1));
    Assert.assertFalse(test.getSet().contains(setChild4));
    it = test.getSet().iterator();
    it.next();
    it.remove();
    Assert.assertTrue((!test.getSet().contains(setChild2) || !test.getSet().contains(setChild3)));
    test.getSet().add(setChild4);
    test.getList().remove(list3Del);
    database.delete(list3Del);
    database.save(test);
    test = database.load(testRid);
    Assert.assertTrue(!test.getList().contains(listChild3));
    listChild1 = database.load(list1Rid);
    listChild2 = database.load(list2Rid);
    listChild3 = database.load(list3Rid);
    listChild4 = database.load(list4Rid);
    setChild1 = database.load(set1Rid);
    setChild2 = database.load(set2Rid);
    setChild3 = database.load(set3Rid);
    setChild4 = database.load(set4Rid);
    Assert.assertNull(listChild1);
    Assert.assertNull(listChild2);
    Assert.assertNull(listChild3);
    Assert.assertNotNull(listChild4);
    Assert.assertNull(setChild1);
    Assert.assertTrue((setChild3 != null && setChild2 == null) || (setChild3 == null && setChild2 != null));
    Assert.assertNotNull(setChild4);
    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 3 with JavaCascadeDeleteTestClass

use of com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass in project orientdb by orientechnologies.

the class ObjectTreeTest method testCascadeDeleteSimpleObject.

@Test(dependsOnMethods = "testCollectionsRemove")
public void testCascadeDeleteSimpleObject() {
    JavaCascadeDeleteTestClass test = database.newInstance(JavaCascadeDeleteTestClass.class);
    JavaSimpleTestClass simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    ORID testRid = database.getRecordByUserObject(test, false).getIdentity();
    ORID simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    database.delete(testRid);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    // TEST SET NULL
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    testRid = database.getRecordByUserObject(test, false).getIdentity();
    simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    test.setSimpleClass(null);
    database.save(test);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    database.delete(test);
    // TEST CHANGE NEW RECORD
    test = database.newInstance(JavaCascadeDeleteTestClass.class);
    simple = database.newInstance(JavaSimpleTestClass.class);
    simple.setText("asdasd");
    test.setSimpleClass(simple);
    database.save(test);
    testRid = database.getRecordByUserObject(test, false).getIdentity();
    simpleRid = database.getRecordByUserObject(simple, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    simple = database.newInstance(JavaSimpleTestClass.class);
    database.save(simple);
    test.setSimpleClass(simple);
    database.save(test);
    simple = database.load(simpleRid);
    Assert.assertNull(simple);
    database.delete(test);
}
Also used : JavaCascadeDeleteTestClass(com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass) JavaSimpleTestClass(com.orientechnologies.orient.test.domain.base.JavaSimpleTestClass) ORID(com.orientechnologies.orient.core.id.ORID) Test(org.testng.annotations.Test)

Example 4 with JavaCascadeDeleteTestClass

use of com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass 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 5 with JavaCascadeDeleteTestClass

use of com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass in project orientdb by orientechnologies.

the class ObjectTreeTest method testDeleteRecordOutsideCollection.

@SuppressWarnings("unused")
@Test(dependsOnMethods = "testCascadeDeleteCollections")
public void testDeleteRecordOutsideCollection() {
    JavaCascadeDeleteTestClass test = database.newInstance(JavaCascadeDeleteTestClass.class);
    Child listChild1 = database.newInstance(Child.class);
    listChild1.setName("list1");
    test.getList().add(listChild1);
    Child listChild2 = database.newInstance(Child.class);
    listChild2.setName("list2");
    test.getList().add(listChild2);
    Child listChild3 = database.newInstance(Child.class);
    listChild3.setName("list3");
    test.getList().add(listChild3);
    Child setChild1 = database.newInstance(Child.class);
    setChild1.setName("set1");
    test.getSet().add(setChild1);
    Child setChild2 = database.newInstance(Child.class);
    setChild2.setName("set2");
    test.getSet().add(setChild2);
    Child setChild3 = database.newInstance(Child.class);
    setChild3.setName("set3");
    test.getSet().add(setChild3);
    database.save(test);
    ORID testRid = database.getRecordByUserObject(test, false).getIdentity();
    ORID list1Rid = database.getRecordByUserObject(listChild1, false).getIdentity();
    ORID set2Rid = database.getRecordByUserObject(setChild2, false).getIdentity();
    database.close();
    database = OObjectDatabasePool.global().acquire(url, "admin", "admin");
    database.delete(list1Rid);
    database.delete(set2Rid);
    test = database.load(testRid);
    try {
        for (int i = 0; i < test.getList().size(); i++) {
            if (i == 0) {
                Assert.assertNull(test.getList().get(i));
            } else {
                Assert.assertNotNull(test.getList().get(i));
            }
        }
        for (Child c : test.getSet()) {
        }
    } catch (NullPointerException npe) {
        Assert.fail("NullPointer on list retrieving that shouldn't happen");
    }
    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)

Aggregations

ORID (com.orientechnologies.orient.core.id.ORID)8 JavaCascadeDeleteTestClass (com.orientechnologies.orient.test.domain.base.JavaCascadeDeleteTestClass)8 Test (org.testng.annotations.Test)8 Child (com.orientechnologies.orient.test.domain.business.Child)6 IdentityChild (com.orientechnologies.orient.test.domain.business.IdentityChild)6 JavaSimpleTestClass (com.orientechnologies.orient.test.domain.base.JavaSimpleTestClass)2