public void testSetGetDataObjectWithQueryPath() {
    SDOProperty property_c1_object = new SDOProperty(aHelperContext);
    property_c1_object.setName("PName-c1");
    property_c1_object.setContainment(true);
    property_c1_object.setMany(true);
    property_c1_object.setType(SDOConstants.SDO_INT);

    type_c0.addDeclaredProperty(property_c1_object);

    Integer b = new Integer(12);

    dataObject_a.setInt("PName-a0/PName-b0[number='1']/PName-c1.0", b.intValue());

    this.assertEquals(
        b.intValue(), dataObject_a.getInt("PName-a0/PName-b0[number='1']/PName-c1.0"));
  }
  public void setUp() { // set up as a/b/c
    super.setUp();

    type_a = new SDOType(URINAME, TYPENAME_A);
    type_b = new SDOType(URINAME, TYPENAME_B);
    type_c = new SDOType(URINAME, TYPENAME_C);
    type_c_bNotSDODataOject = new SDOType(URINAME, TYPENAME_C);
    type_a_bNotSDODataOject = new SDOType(URINAME, TYPENAME_A);
    type_b_bNotSDODataOject = new SDOType(URINAME, TYPENAME_B);

    property_a = new SDOProperty(aHelperContext);
    property_a.setContainment(true);
    property_a.setName(PROPERTY_NAME_A);
    property_a.setType(type_b);
    type_a.addDeclaredProperty(property_a);
    dataObject_a = (SDODataObject) dataFactory.create(type_a);

    property_b = new SDOProperty(aHelperContext);
    property_b.setContainment(true);
    property_b.setMany(true);
    property_b.setType(type_c);
    property_b.setName(PROPERTY_NAME_B);
    type_b.addDeclaredProperty(property_b);
    dataObject_b = (SDODataObject) dataFactory.create(type_b);

    dataObject_c = (SDODataObject) dataFactory.create(type_c);
    dataObject_a.set(property_a, dataObject_b); // a dataobject's a property has value b dataobject
    List objects = new ArrayList();
    objects.add(dataObject_c);
    dataObject_b.set(property_b, objects); // b dataobject's b property has value c dataobject

    property_a_bNotSDODataOject = new SDOProperty(aHelperContext);
    property_a_bNotSDODataOject.setName(PROPERTY_NAME_A);
    property_a_bNotSDODataOject.setType(type_b_bNotSDODataOject);
    type_a_bNotSDODataOject.addDeclaredProperty(property_a_bNotSDODataOject);
    dataObject_a_bNotSDODataOject = (SDODataObject) dataFactory.create(type_a_bNotSDODataOject);

    property_b_bNotSDODataOject = new SDOProperty(aHelperContext);
    property_b_bNotSDODataOject.setName(PROPERTY_NAME_B);
    property_b_bNotSDODataOject.setType(SDOConstants.SDO_STRING);
    type_b_bNotSDODataOject.addDeclaredProperty(property_b_bNotSDODataOject);
    dataObject_b_bNotSDODataOject = (SDODataObject) dataFactory.create(type_b_bNotSDODataOject);

    dataObject_c_bNotSDODataOject = (SDODataObject) dataFactory.create(type_c_bNotSDODataOject);
    dataObject_a_bNotSDODataOject.set(
        property_a_bNotSDODataOject,
        dataObject_b_bNotSDODataOject); // a dataobject's a property has value b dataobject
    dataObject_b_bNotSDODataOject.set(
        property_b_bNotSDODataOject, "test"); // b dataobject's b property has value c dataobject

    /*List basTypes_a = new ArrayList();
    basTypes_a.add(type_b);
    basTypes_a.add(type_c);

    List basTypes_b = new ArrayList();
    basTypes_b.add(type_c);

    type_a.setBaseTypes(basTypes_a);
    type_b.setBaseTypes(basTypes_b);*/
    type_a_pathLength_1 = new SDOType(URINAME, TYPENAME_A);
    property_a_pathLength_1 = new SDOProperty(aHelperContext);
    property_a_pathLength_1.setName(PROPERTY_NAME_A_LENGTH_1);
    type_a_pathLength_1.addDeclaredProperty(property_a_pathLength_1);

    dataObject_a_pathLength_1 = (SDODataObject) dataFactory.create(type_a_pathLength_1);
  }