blob: 066906ee8d05a854d8fcfb5838e0bbc601691aa7 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.sdo.model.dataobject;
import org.eclipse.persistence.sdo.SDOConstants;
import org.eclipse.persistence.sdo.SDODataObject;
import org.eclipse.persistence.sdo.SDOProperty;
import org.eclipse.persistence.sdo.SDOType;
public class SDODataObjectGetWithPathTest extends SDODataObjectConversionWithPathTestCases {
public SDODataObjectGetWithPathTest(String name) {
super(name);
}
//1. purpose: get with path ("a/b/c")
public void testGetConversionWithFullPath() {
// dataObject's type add boolean property
property_c = new SDOProperty(aHelperContext);
property_c.setName(PROPERTY_NAME_C);
property_c.setType(SDOConstants.SDO_BOOLEAN);
type_c.addDeclaredProperty(property_c);
dataObject_c._setType(type_c);
boolean c = true;
Boolean C = c;
//dataObject_a.setBoolean("PName-a/PName-b/PName-c", c);// c dataobject's a property has value boolean 'true'
dataObject_a.set("PName-a/PName-b/PName-c", C);
assertEquals(C, dataObject_a.get("PName-a/PName-b/PName-c"));
}
//2. purpose: getBoolean with path ("a/b/c")
public void testGetBooleanConversionWithFullPath() {
// dataObject's type add boolean property
property_c = new SDOProperty(aHelperContext);
property_c.setName(PROPERTY_NAME_C);
property_c.setType(SDOConstants.SDO_BOOLEAN);
type_c.addDeclaredProperty(property_c);
dataObject_c._setType(type_c);
boolean c = true;
Boolean C = c;
dataObject_a.setBoolean("PName-a/PName-b/PName-c", c);// c dataobject's a property has value boolean 'true'
//dataObject_a.set("PName-a/PName-b/PName-c", C);
assertEquals(c, dataObject_a.getBoolean("PName-a/PName-b/PName-c"));
}
//3. purpose: set(Path) with path ("a/b/c"), and b is not a dataobject
public void testSetConversionFromWrongPath() {
// dataObject's type add boolean property
property_c_bNotSDODataOject = new SDOProperty(aHelperContext);
property_c_bNotSDODataOject.setName(PROPERTY_NAME_C);
property_c_bNotSDODataOject.setType(SDOConstants.SDO_BOOLEAN);
type_c_bNotSDODataOject.addDeclaredProperty(property_c_bNotSDODataOject);
dataObject_c_bNotSDODataOject._setType(type_c_bNotSDODataOject);
boolean c = true;
Boolean C = c;
//dataObject_c_bNotSDODataOject.setBoolean(property_c_bNotSDODataOject, c);// c dataobject's a property has value boolean 'true'
try {
dataObject_a_bNotSDODataOject.set("PName-a/PName-b/PName-c", C);
fail("ClassCastException should be thrown.");
} catch (ClassCastException e) {
}
//assertNull(dataObject_a_bNotSDODataOject.get("PName-a/PName-b/PName-c"));
}
//4. purpose: setBoolean(Path) with path ("a/b/c"), and b is not a dataobject
public void testSetBooleanConversionFromWrongPath() {
// dataObject's type add boolean property
property_c_bNotSDODataOject = new SDOProperty(aHelperContext);
property_c_bNotSDODataOject.setName(PROPERTY_NAME_C);
property_c_bNotSDODataOject.setType(SDOConstants.SDO_BOOLEAN);
type_c_bNotSDODataOject.addDeclaredProperty(property_c_bNotSDODataOject);
dataObject_c_bNotSDODataOject._setType(type_c_bNotSDODataOject);
boolean c = true;
//Boolean C = Boolean.valueOf(c);
//dataObject_c_bNotSDODataOject.setBoolean(property_c_bNotSDODataOject, c);// c dataobject's a property has value boolean 'true'
try {
dataObject_a_bNotSDODataOject.setBoolean("PName-a/PName-b/PName-c", c);
fail("ClassCastException should be thrown.");
} catch (ClassCastException e) {
}
//assertNull(dataObject_a_bNotSDODataOject.get("PName-a/PName-b/PName-c"));
}
//5. purpose: get(Path) with path ("a/b/c"), and b is not a dataobject
public void testGetBooleanConversionFromWrongPath() {
// dataObject's type add boolean property
property_c_bNotSDODataOject = new SDOProperty(aHelperContext);
property_c_bNotSDODataOject.setName(PROPERTY_NAME_C);
property_c_bNotSDODataOject.setType(SDOConstants.SDO_BOOLEAN);
type_c_bNotSDODataOject.addDeclaredProperty(property_c_bNotSDODataOject);
dataObject_c_bNotSDODataOject._setType(type_c_bNotSDODataOject);
boolean c = true;
//Boolean C = Boolean.valueOf(c);
dataObject_c_bNotSDODataOject.setBoolean(property_c_bNotSDODataOject, c);// c dataobject's a property has value boolean 'true'
assertNull(dataObject_a_bNotSDODataOject.get("PName-a/PName-b/PName-c"));
}
//6. purpose: get(Path) with path length 1: "a"
public void testGetBooleanConversionFromPathWithLength_1() {
property_a_pathLength_1.setType(SDOConstants.SDO_BOOLEAN);
boolean b = true;
Boolean B = b;
dataObject_a_pathLength_1.setBoolean("PName-a-length-1", b);
assertEquals(B, dataObject_a_pathLength_1.get("PName-a-length-1"));
}
//7. purpose: get(Path) with path=null
public void testGetBooleanConversionFromNullPath() {
String path = null;
assertNull(dataObject_a_pathLength_1.get(path));
}
//8. purpose: getBoolean with path ("a/b/c"), and c's value is not
// set, and c's default value is null
public void testGetBooleanConversionWithLastPropertyValueNotSet_NullDefaultValue() {
// dataObject's type add boolean property
property_c = new SDOProperty(aHelperContext);
property_c.setName(PROPERTY_NAME_C);
property_c.setType(SDOConstants.SDO_BOOLEAN);
type_c.addDeclaredProperty(property_c);
dataObject_c._setType(type_c);
boolean c = true;
//dataObject_c.setBoolean(property_c, c); // c dataobject's a property has value boolean 'true'
//assertEquals(c, dataObject_a.getBoolean("PName-a/PName-b/PName-c"));
}
//9. purpose: set with path ("a/b/c") where 'b' has null value. !! now, null pointer exception show throw
public void testGetConversionWithNullValueInPath() {
SDODataObject aDataObject_a = new SDODataObject();
SDOType aType_a = new SDOType(URINAME, TYPENAME_A);
SDOProperty aProperty_a = new SDOProperty(aHelperContext);
aProperty_a.setName(PROPERTY_NAME_A);
aType_a.addDeclaredProperty(aProperty_a);
aDataObject_a._setType(aType_a);
SDODataObject aDataObject_b = new SDODataObject();
SDOType aType_b = new SDOType(URINAME, TYPENAME_B);
SDOProperty aProperty_b = new SDOProperty(aHelperContext);
aProperty_b.setName(PROPERTY_NAME_B);
aType_b.addDeclaredProperty(aProperty_b);
aDataObject_b._setType(aType_b);
// 6159746: no null Type allowed on Property Object
aProperty_a.setType(aType_a);
aProperty_b.setType(aType_b);
aDataObject_a.set(aProperty_a, aDataObject_b);// a dataobject's a property has value b dataobject
aDataObject_b.set(aProperty_b, null);// b dataobject's b property has value c dataobject
//Boolean C = Boolean.valueOf(true);
//dataObject_a.setBoolean("PName-a/PName-b/PName-c", true);// c dataobject's a property has value boolean 'true'
// null pointer is not handled yet
//dataObject_a.set("PName-a/PName-b/PName-c", C);
assertNull(aDataObject_a.get("PName-a/PName-b/PName-c"));
//assertEquals(C, aDataObject_a.get("PName-a/PName-b/PName-c"));
}
}