| /* |
| * Copyright (c) 1998, 2020 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.helper.typehelper.define; |
| |
| import commonj.sdo.DataObject; |
| import commonj.sdo.Property; |
| import commonj.sdo.Type; |
| import java.util.ArrayList; |
| import java.util.List; |
| import org.eclipse.persistence.sdo.SDOProperty; |
| import org.eclipse.persistence.testing.sdo.SDOTestCase; |
| |
| public class CustomerDefineTestCases extends SDOTestCase { |
| public CustomerDefineTestCases(String name) { |
| super(name); |
| } |
| |
| public void testDefineTypes() throws Exception { |
| List dataObjects = new ArrayList(); |
| dataObjects.add(getDataObject()); |
| List definedTypes = typeHelper.define(dataObjects); |
| assertNotNull(definedTypes); |
| assertEquals(1, definedTypes.size()); |
| verify((Type)definedTypes.get(0)); |
| } |
| |
| public void testDefineType() throws Exception { |
| Type definedType = typeHelper.define(getDataObject()); |
| verify(definedType); |
| |
| } |
| |
| protected DataObject getDataObject() { |
| Type intType = typeHelper.getType("commonj.sdo", "Int"); |
| Type stringType = typeHelper.getType("commonj.sdo", "String"); |
| |
| // create a new Type for Customers |
| DataObject customerType = dataFactory.create("commonj.sdo", "Type"); |
| |
| SDOProperty prop = (SDOProperty)customerType.getType().getProperty("uri"); |
| customerType.set(prop, "http://example.com/customer"); |
| |
| prop = (SDOProperty)customerType.getType().getProperty("name"); |
| customerType.set(prop, "Customer"); |
| |
| // create a customer number property |
| DataObject custNumProperty = customerType.createDataObject("property"); |
| prop = (SDOProperty)custNumProperty.getType().getProperty("name"); |
| custNumProperty.set(prop, "custNum"); |
| |
| prop = (SDOProperty)custNumProperty.getType().getProperty("type"); |
| custNumProperty.set(prop, intType); |
| // create a first name property |
| DataObject firstNameProperty = customerType.createDataObject("property"); |
| prop = (SDOProperty)firstNameProperty.getType().getProperty("name"); |
| firstNameProperty.set(prop, "firstName"); |
| |
| prop = (SDOProperty)firstNameProperty.getType().getProperty("type"); |
| firstNameProperty.set(prop, stringType); |
| |
| // create a last name property |
| DataObject lastNameProperty = customerType.createDataObject("property"); |
| prop = (SDOProperty)lastNameProperty.getType().getProperty("name"); |
| lastNameProperty.set(prop, "lastName"); |
| |
| prop = (SDOProperty)lastNameProperty.getType().getProperty("type"); |
| lastNameProperty.set(prop, stringType); |
| |
| return customerType; |
| } |
| |
| protected void verify(Type definedType) { |
| assertEquals(definedType.getName(), "Customer"); |
| |
| assertEquals(definedType.getURI(), "http://example.com/customer"); |
| |
| assertEquals(getPropsSize(), definedType.getDeclaredProperties().size()); |
| Type intType = typeHelper.getType("commonj.sdo", "Int"); |
| Type stringType = typeHelper.getType("commonj.sdo", "String"); |
| |
| Property prop = definedType.getProperty("custNum"); |
| assertNotNull(prop); |
| assertEquals(intType, prop.getType()); |
| |
| prop = definedType.getProperty("firstName"); |
| assertNotNull(prop); |
| assertEquals(stringType, prop.getType()); |
| |
| prop = definedType.getProperty("lastName"); |
| assertNotNull(prop); |
| assertEquals(stringType, prop.getType()); |
| } |
| |
| protected int getPropsSize() { |
| return 3; |
| } |
| } |