blob: 32eb7014545d5a9e67435db266ba4f254babbda6 [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 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;
import org.eclipse.persistence.sdo.SDOType;
import org.eclipse.persistence.exceptions.SDOException;
public class SDODataObjectGetListConversionTest extends SDODataObjectConversionWithPathTestCases {
public SDODataObjectGetListConversionTest(String name) {
super(name);
}
public static void main(String[] args) {
String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.model.dataobject.SDODataObjectGetListConversionTest" };
TestRunner.main(arguments);
}
//6. purpose: getList(Path) with path length 1: "a"
public void testGetListConversionWithPath() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = new ArrayList();
dataObject_a_pathLength_1.setList("PName-a-length-1", b);
assertEquals(b, dataObject_a_pathLength_1.getList("PName-a-length-1"));
}
//6. purpose: getList(Path) with path length 1: "a"
public void testGetListConversionWithWrongPath() {
SDOProperty property_undefined = new SDOProperty(aHelperContext);
property_undefined.setName("PName-Undefined");
property_undefined.setType(SDOConstants.SDO_STRINGS);
property_undefined.setMany(true);
try {
dataObject_a_pathLength_1.getList("PName-Undefined");
} catch (Exception e) {
fail("No Exception expected, but caught " + e.getClass());
}
}
//6. purpose: getList(Path) with defined property
public void testGetListConversionWithProperty() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = new ArrayList();
dataObject_a_pathLength_1.setList(property_a_pathLength_1, b);
assertEquals(b, dataObject_a_pathLength_1.getList(property_a_pathLength_1));
}
//6. purpose: getList(Path) with defined property
public void testGetListConversionWithPropertyPositionalSetting() {
type_a_pathLength_1.setOpen(true);
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = new ArrayList();
dataObject_a_pathLength_1.setList(property_a_pathLength_1, b);
dataObject_a_pathLength_1.set(PROPERTY_NAME_A_LENGTH_1 + ".0", "test");
assertEquals(1, dataObject_a_pathLength_1.getList(property_a_pathLength_1).size());
}
//6. purpose: getList(Path) with defined property
public void testGetListConversionWithPropertyPositionalSettingBracket() {
type_a_pathLength_1.setOpen(true);
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = new ArrayList();
dataObject_a_pathLength_1.setList(property_a_pathLength_1, b);
dataObject_a_pathLength_1.set(PROPERTY_NAME_A_LENGTH_1 + "[1]", "test");
assertEquals(1, dataObject_a_pathLength_1.getList(property_a_pathLength_1).size());
assertEquals("test", dataObject_a_pathLength_1.getList(property_a_pathLength_1).get(0));
}
//6. purpose: getList(Path) with defined property value null
public void testGetListConversionWithPropertyValueNull() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = null;
dataObject_a_pathLength_1.setList(property_a_pathLength_1, b);
assertNotNull(dataObject_a_pathLength_1.getList(property_a_pathLength_1));
}
//6. purpose: getList(Path) with path length 1: "a"
public void testGetListConversionWithUndefinedProperty() {
SDOProperty property_undefined = new SDOProperty(aHelperContext);
property_undefined.setName("PName-Undefined");
property_undefined.setType(SDOConstants.SDO_STRINGS);
property_undefined.setMany(true);
try {
dataObject_a_pathLength_1.getList(property_undefined);
fail("IllegalArgumentException should be thrown.");
} catch (IllegalArgumentException e) {
}
}
//6. purpose: getBoolean with Defined Boolean Property
public void testGetListConversionWithIndex() {
// dataObject's type add boolean property
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List b = new ArrayList();
dataObject_a_pathLength_1.setList(0, b);
assertEquals(b, dataObject_a_pathLength_1.getList(0));
}
//6. purpose: getBoolean with Undefined Boolean Property
public void testGetListConversionWithUndefinedIndex() {
// dataObject's type add boolean property
SDOType type_undefined = new SDOType(URINAME, TYPENAME_A);
SDODataObject dataObject_undeinfed = (SDODataObject)dataFactory.create(type_undefined);
SDOProperty property_undefined = new SDOProperty(aHelperContext);
List b = new ArrayList();
try {
dataObject_undeinfed.getList(0);
} catch (SDOException e) {
assertEquals(SDOException.PROPERTY_NOT_FOUND_AT_INDEX ,e.getErrorCode());
return;
}
fail("an SDOException should have occurred.");
}
public void testGetListConversionWithNonManyProperty() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(false);
try {
dataObject_a_pathLength_1.getList("PName-a-length-1");
} catch (Exception e) {
fail("No Exception expected, but caught " + e.getClass());
}
}
public void testGetListConversionWithNullValue() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List value = dataObject_a_pathLength_1.getList("PName-a-length-1");
assertEquals(new ArrayList(), value);
}
public void testGetListConversionWithNullValueByProperty() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRINGS);
property_a_pathLength_1.setMany(true);
List value = dataObject_a_pathLength_1.getList(PROPERTY_NAME_A_LENGTH_1);
assertEquals(new ArrayList(), value);
}
public void testSameListObject() {
property_a_pathLength_1.setType(SDOConstants.SDO_STRING);
property_a_pathLength_1.setMany(true);
Object value = dataObject_a_pathLength_1.get(PROPERTY_NAME_A_LENGTH_1);
Object value2 = dataObject_a_pathLength_1.getList(PROPERTY_NAME_A_LENGTH_1);
boolean equals = value == value2;
assertTrue(equals);
dataObject_a_pathLength_1.unset(PROPERTY_NAME_A_LENGTH_1);
Object value3 = dataObject_a_pathLength_1.get(PROPERTY_NAME_A_LENGTH_1);
Object value4 = dataObject_a_pathLength_1.getList(PROPERTY_NAME_A_LENGTH_1);
equals = value3 == value4;
assertTrue(equals);
equals = value2 == value3;
assertTrue(equals);
List myList = new ArrayList();
myList.add("test");
dataObject_a_pathLength_1.set(PROPERTY_NAME_A_LENGTH_1, myList);
Object value5 = dataObject_a_pathLength_1.get(PROPERTY_NAME_A_LENGTH_1);
Object value6 = dataObject_a_pathLength_1.getList(PROPERTY_NAME_A_LENGTH_1);
equals = value5 == value6;
assertTrue(equals);
equals = value4 == value5;
assertTrue(equals);
List myList2 = new ArrayList();
myList2.add("test2");
dataObject_a_pathLength_1.set(PROPERTY_NAME_A_LENGTH_1, myList2);
Object value7 = dataObject_a_pathLength_1.get(PROPERTY_NAME_A_LENGTH_1);
Object value8 = dataObject_a_pathLength_1.getList(PROPERTY_NAME_A_LENGTH_1);
equals = value7 == value8;
assertTrue(equals);
equals = value6 == value7;
assertTrue(equals);
}
}