blob: 7ecc1ae9f2708add275157fb50351d7c7c18469e [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.xpathquery;
import commonj.sdo.Property;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import junit.textui.TestRunner;
import org.eclipse.persistence.sdo.SDOConstants;
import org.eclipse.persistence.sdo.SDODataObject;
import org.eclipse.persistence.sdo.SDOProperty;
public class SDODataObjectUnsetIsSetByXPathQueryTest extends SDODataObjectGetByXPathQueryTestCases {
public SDODataObjectUnsetIsSetByXPathQueryTest(String name) {
super(name);
}
public static void main(String[] args) {
String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.model.dataobject.xpathquery.SDODataObjectUnsetIsSetByXPathQueryTest" };
TestRunner.main(arguments);
}
//purpose: if dataObject just been new and property has not been set, iset() return false
public void testIsSetWithNotYetSetDefinedProperty_SingleValue() {
//Property test = dataObject.getProperty(DEFINED_PROPERTY_NAME);
//a/b[number=1]/c
assertFalse(dataObject_a.isSet("PName-a0/PName-b0[number='1']/" + "PName-c0"));
}
//purpose: if dataObject just been new and property has not been set, iset() return false
public void testIsSetWithNotYetSetDefinedProperty_SingleValue_Path() {
//a/b.0/c
assertFalse(dataObject_a.isSet("PName-a0/PName-b0.1/PName-c0"));
}
//purpose: if dataObject just been new and property has not been set, iset() return false
public void testIsSetWithNotYetSetDefinedProperty_SingleValue_Index() {
assertTrue(dataObject_a.isSet(propertyTest + "PName-c0"));
}
//purpose: if dataObject just been new and property has not been set, iset() return false
public void testIsSetWithNotYetSetDefinedProperty_SingleValue_Path_a_b() {
assertTrue(dataObject_a.isSet("PName-a0/PName-b0.0/PName-c0"));
}
//purpose: if property has been set and then unSet, isSet() return true first and false later
public void testIsSetWithSetThenUnSetDefinedProperty_SingleValue1() {
assertTrue(dataObject_a.isSet(propertyTest + "PName-c0"));
dataObject_a.unset(propertyTest + "PName-c0");
assertFalse(dataObject_a.isSet(propertyTest + "PName-c0"));
}
//purpose: if property has been set and then unSet, isSet() return true first and false later
public void testIsSetWithSetThenUnSetDefinedProperty_SingleValue() {
assertTrue(dataObject_a.isSet("PName-a0/PName-b0.0/PName-c0"));
dataObject_a.unset("PName-a0/PName-b0.0/PName-c0");
assertFalse(dataObject_a.isSet("PName-a0/PName-b0.0/PName-c0"));
}
//purpose: set a property's value, then unset it, get its value should now return defaule value.
public void testUnSetWithDefinedProperty_SingleValue_Path_a_b1() {
List deflt = new ArrayList();
property_c0.setDefault(deflt);
dataObject_a.unset(propertyTest + "PName-c0");
assertEquals(deflt, dataObject_a.get(propertyTest + "PName-c0"));
}
//purpose: set a property's value, then unset it, get its value should now return defaule value.
public void testUnSetWithDefinedProperty_SingleValue_Path_a_b() {
List deflt = new ArrayList();
property_c0.setDefault(deflt);
dataObject_a.unset("PName-a0/PName-b0.0/PName-c0");
assertEquals(deflt, dataObject_a.get("PName-a0/PName-b0.0/PName-c0"));
}
//case:a/b.0/c[number="123"] where number is a many type property, and no objects meets requirement
public void testMultipleCaseOueryD1AliasName() {
//List aliasNames = new ArrayList();
//aliasNames.add("alias1");
//aliasNames.add("alias2");
//property_d_number.setAliasNames(aliasNames);
dataObject_a.unset("schema:PName-a/PName-b.0/PName-c[alias1=\"1\"]");
assertFalse(dataObject_a.isSet("schema:PName-a/PName-b.0/PName-c[alias1=\"1\"]"));
}
public void testunSetOpenContentPropertyAliasName() {
SDOProperty property_open = new SDOProperty(aHelperContext);
property_open.setName("openProperty");
property_open.setType(SDOConstants.SDO_STRING);
property_open.setMany(false);
List aliasNames_ = new ArrayList();
aliasNames_.add("alias1");
aliasNames_.add("alias2");
property_open.setAliasNames(aliasNames_);
dataObject_c.set(property_open, "test");
dataObject_a.unset("schema:PName-a/PName-b.0/alias2");
assertFalse(dataObject_a.isSet("schema:PName-a/PName-b.0/alias1"));
}
//case:a/b.0/c[number="123"] where number is a many type property, and no objects meets requirement
public void testMultipleCaseOueryD1AliasName1() {
dataObject_a.unset("schema:PName-a/@alias2.0/PName-c[number=\"1\"]");
assertFalse(dataObject_a.isSet("schema:PName-a/@alias2.0/PName-c[number=\"1\"]"));
}
/*//purpose: unset undefined property should cause exception
public void testUnSetWithUndefinedProperty_SingleValue() {
Property test = dataObject.getProperty(UNDEFINED_PROPERTY_NAME);
try {
dataObject.unset(propertyTest+"undefined");
fail("Should throw IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
}*/
//purpose: set undefined property should cause exception
public void testSetWithUndefinedProperty_SingleValue1() {
// Property test = dataObject.getProperty(UNDEFINED_PROPERTY_NAME);
//try {
assertFalse(dataObject_a.isSet(propertyTest + "undefined"));
//fail("Should throw IllegalArgumentException.");
//} catch (IllegalArgumentException e) {
//}
}
//purpose: set undefined property should cause exception
public void testSetWithUndefinedProperty_SingleValue() {
// Property test = dataObject.getProperty(UNDEFINED_PROPERTY_NAME);
//try {
assertFalse(dataObject_a.isSet("PName-a0/PName-b0.0/undefined"));
//fail("Should throw IllegalArgumentException.");
//} catch (IllegalArgumentException e) {
//}
}
//purpose: if dataObject just been new and property has not been set, iset() return false
public void testUnSetEntireList() {
SDODataObject dataObjectC1 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC2 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC3 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC4 = (SDODataObject)dataFactory.create(type_c);
List theList = new ArrayList();
theList.add(dataObjectC1);
theList.add(dataObjectC2);
theList.add(dataObjectC3);
theList.add(dataObjectC4);
dataObject_a.set("PName-a0/PName-b0", theList);
List dataObjectList = dataObject_a.getList("PName-a0/PName-b0");
assertEquals(4, dataObjectList.size());
dataObject_a.set("PName-a0/PName-b0", theList);
dataObject_a.unset("PName-a0/PName-b0");
dataObjectList = dataObject_a.getList("PName-a0/PName-b0");
assertEquals(0, dataObjectList.size() );
}
public void testUnSetItemInList() {
SDODataObject dataObjectC1 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC2 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC3 = (SDODataObject)dataFactory.create(type_c);
SDODataObject dataObjectC4 = (SDODataObject)dataFactory.create(type_c);
List theList = new ArrayList();
theList.add(dataObjectC1);
theList.add(dataObjectC2);
theList.add(dataObjectC3);
theList.add(dataObjectC4);
dataObject_a.set("PName-a0/PName-b0", theList);
List dataObjectList = dataObject_a.getList("PName-a0/PName-b0");
assertEquals(4, dataObjectList.size() );
dataObject_a.unset("PName-a0/PName-b0.1");
dataObjectList = dataObject_a.getList("PName-a0/PName-b0");
assertEquals(3, dataObjectList.size() );
}
public void testPathDoesNotExistJira8() {
SDODataObject dataObjectC1 = (SDODataObject)dataFactory.create(type_c);
boolean isSet = dataObjectC1.isSet("something/somethingelse");
assertFalse(isSet);
}
}