| /* |
| * 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.changesummary; |
| |
| import commonj.sdo.DataObject; |
| 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.testing.sdo.SDOTestCase; |
| |
| public class ChangeSummaryCopyTestCases extends SDOTestCase { |
| public ChangeSummaryCopyTestCases(String name) { |
| super(name); |
| } |
| |
| protected static final String URINAME = "root_uri"; |
| protected static final String TYPENAME = "rootTypeName"; |
| private SDOType rootType; |
| private SDOType type_B; |
| private SDOType type_D; |
| private SDOType type_E; |
| private DataObject root; |
| private DataObject dataObjectB; |
| private DataObject dataObjectD; |
| private DataObject dataObjectE; |
| |
| @Override |
| public void setUp() { |
| super.setUp(); |
| DataObject rootTypeDO = defineType(URINAME, TYPENAME); |
| rootType = (SDOType)typeHelper.define(rootTypeDO); |
| SDOType changeSummaryType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY); |
| SDOType dataObjectType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.DATAOBJECT); |
| |
| SDOProperty rootContainingPropertyB = setUpProperty("propertyA-B", true, dataObjectType, rootType); |
| |
| DataObject type_BDO = defineType("B_uri", "B"); |
| type_B = (SDOType)typeHelper.define(type_BDO); |
| |
| SDOProperty propertyB = setUpProperty("propertyB", true, dataObjectType, type_B); |
| setUpProperty("changeSummaryB", false, changeSummaryType, type_B); |
| |
| DataObject type_DDO = defineType("D_uri", "D"); |
| type_D = (SDOType)typeHelper.define(type_DDO); |
| |
| SDOProperty propertyD = setUpProperty("propertyD", true, dataObjectType, type_D); |
| |
| //propertyD = setUpProperty("propertyD", false, SDOConstants.SDO_STRING, type_D); |
| DataObject type_EDO = defineType("E_uri", "E"); |
| type_E = (SDOType)typeHelper.define(type_EDO); |
| |
| // String types are containment == false |
| SDOProperty propertyE = setUpProperty("propertyE", false, SDOConstants.SDO_STRING, type_E); |
| |
| root = dataFactory.create(rootType); |
| dataObjectB = root.createDataObject(rootContainingPropertyB, type_B); |
| dataObjectD = dataObjectB.createDataObject(propertyB, type_D); |
| dataObjectE = dataObjectD.createDataObject(propertyD, type_E); |
| dataObjectB.getChangeSummary().beginLogging(); |
| |
| } |
| |
| @Override |
| public void tearDown() { |
| dataObjectB.getChangeSummary().beginLogging(); |
| } |
| |
| public static void main(String[] args) { |
| String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.model.changesummary.ChangeSummaryCopyTestCases" }; |
| TestRunner.main(arguments); |
| } |
| |
| public void testCopyChildSecondLevelNoPropsSet() { |
| copyHelper.copy(dataObjectE); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| public void testCopyChildSecondLevel() { |
| dataObjectB.getChangeSummary().endLogging(); |
| dataObjectE.set("propertyE", "propEStringValue"); |
| // #5878436 12-FEB-07 do not recurse into a non-containment relationships or simple containment ones |
| dataObjectB.getChangeSummary().beginLogging(); |
| copyHelper.copy(dataObjectE); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| public void testCopyChildFirstLevelNoPropsSet() { |
| dataObjectB.getChangeSummary().endLogging(); |
| dataObjectD.unset("propertyD"); |
| dataObjectB.getChangeSummary().beginLogging(); |
| copyHelper.copy(dataObjectD); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| public void testCopyChildFirstLevel() { |
| copyHelper.copy(dataObjectD); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| public void testCopyCSOwner() { |
| copyHelper.copy(dataObjectB); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| public void testCopyRoot() { |
| copyHelper.copy(root); |
| int changedSize = dataObjectB.getChangeSummary().getChangedDataObjects().size(); |
| assertEquals(0, changedSize); |
| } |
| |
| protected SDOProperty setUpProperty(String name, boolean containment, SDOType propertyType, SDOType owner) { |
| SDOProperty property = new SDOProperty(aHelperContext); |
| property.setName(name); |
| property.setContainment(containment); |
| property.setType(propertyType); |
| if (owner != null) { |
| owner.addDeclaredProperty(property); |
| } |
| return property; |
| } |
| } |