blob: 8b9cc4b1946c4150c86dd52351ad69852d520eab [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.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;
}
}