| /* |
| * 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); |
| } |
| } |