blob: a70f6e0428db246f52218669d8a9ac2c6374b627 [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.ChangeSummary;
import commonj.sdo.DataObject;
import org.eclipse.persistence.sdo.SDOChangeSummary;
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 ChangeSummaryCreatedModifiedDeletedTestCase extends SDOTestCase {
protected static final String URINAME = "root_uri";
protected static final String TYPENAME = "rootTypeName";
protected static final String PROPERTY_NAME = "PName";
protected static final String CONTAINED_TYPENAME = "ContainedTypeName";
protected static final String CONTAINED_PROPERTYNAME = "ContainedPName";
protected SDODataObject root;
protected SDOType rootType;
protected SDOChangeSummary changeSummaryA;
protected SDOProperty rootContainingPropertyB;
protected SDOProperty rootContainingPropertyC;
protected SDOProperty rootChangeSummaryProperty;
protected SDODataObject dataObjectB;
protected SDOType type_B;
protected SDOProperty propertyB;
protected SDOChangeSummary changeSummaryB;
protected SDOProperty changeSummaryPropertyB;
protected SDODataObject dataObjectC;
protected SDOType type_C;
protected SDOProperty propertyC;
protected SDOChangeSummary changeSummaryC;
protected SDOProperty changeSummaryPropertyC;
protected SDODataObject dataObjectD;
protected SDOType type_D;
protected SDOProperty propertyD;
protected SDODataObject dataObjectE;
protected SDOType type_E;
protected SDOProperty propertyE;
protected SDODataObject root1;
protected SDOType type_root1;
protected SDOProperty p_root1;
protected SDODataObject dataObjectF;
protected SDOType type_F;
protected SDOProperty p_F;
public ChangeSummaryCreatedModifiedDeletedTestCase(String name) {
super(name);
}
@Override
public void setUp() {
super.setUp(); // watch setup redundancy
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);
rootContainingPropertyB = setUpProperty("propertyA-B", true, dataObjectType, rootType);
rootContainingPropertyC = setUpProperty("propertyA-C", true, dataObjectType, rootType);
rootChangeSummaryProperty = setUpProperty("changeSummaryA", true, changeSummaryType, null);
}
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;
}
/*
* root
* -> B
* -> CS-B
* -> D (String)
* -> C
* -> CS-C
*/
protected void buildTree() {
SDOType changeSummaryType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY);
SDOType dataObjectType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.DATAOBJECT);
DataObject type_BDO = defineType("B_uri", "B");
type_B = (SDOType)typeHelper.define(type_BDO);
propertyB = setUpProperty("propertyB", true, dataObjectType, type_B);
changeSummaryPropertyB = setUpProperty("changeSummaryB", false, changeSummaryType, type_B);
DataObject type_CDO = defineType("C_uri", "C");
type_C = (SDOType)typeHelper.define(type_CDO);
propertyC = setUpProperty("propertyC", true, dataObjectType, type_C);
changeSummaryPropertyC = setUpProperty("changeSummaryC", false, changeSummaryType, type_C);
DataObject type_DDO = defineType("D_uri", "D");
type_D = (SDOType)typeHelper.define(type_DDO);
propertyD = setUpProperty("propertyD", false, SDOConstants.SDO_STRING, type_D);
root = (SDODataObject)dataFactory.create(rootType);
dataObjectB = root.createDataObject(rootContainingPropertyB, type_B);
dataObjectC = root.createDataObject(rootContainingPropertyC, type_C);
dataObjectD = dataObjectB.createDataObject(propertyB, type_D);
}
protected void checkOldSettingsSizeTree(String values, SDOChangeSummary aCS,//
SDODataObject aDO1, SDODataObject aDO2, SDODataObject aDO3, SDODataObject aDO4) {
assertEquals(Integer.parseInt(values.substring(0, 1)), aCS.getOldValues(aDO1).size());
assertEquals(Integer.parseInt(values.substring(1, 2)), aCS.getOldValues(aDO2).size());
assertEquals(Integer.parseInt(values.substring(2, 3)), aCS.getOldValues(aDO3).size());
assertEquals(Integer.parseInt(values.substring(3, 4)), aCS.getOldValues(aDO4).size());
}
protected void checkOldContainer(SDOChangeSummary aCS,//
SDODataObject aDO1, Object anObject1,//
SDODataObject aDO2, Object anObject2,//
SDODataObject aDO3, Object anObject3,//
SDODataObject aDO4, Object anObject4) {
assertEquals(anObject1, aCS.getOldContainer(aDO1));
assertEquals(anObject2, aCS.getOldContainer(aDO2));
assertEquals(anObject3, aCS.getOldContainer(aDO3));
assertEquals(anObject4, aCS.getOldContainer(aDO4));
}
/*
* root
* -> B
* -> CS-B
* -> D
* -> E
* -> string
* -> C
* -> CS-C
*/
protected void buildTreeWith4LevelsOfProperties() {
SDOType changeSummaryType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY);
SDOType dataObjectType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.DATAOBJECT);
DataObject type_BDO = defineType("B_uri", "B");
type_B = (SDOType)typeHelper.define(type_BDO);
propertyB = setUpProperty("propertyB", true, dataObjectType, type_B);
changeSummaryPropertyB = setUpProperty("changeSummaryB", false, changeSummaryType, type_B);
DataObject type_CDO = defineType("C_uri", "C");
type_C = (SDOType)typeHelper.define(type_CDO);
propertyC = setUpProperty("propertyC", true, dataObjectType, type_C);
changeSummaryPropertyC = setUpProperty("changeSummaryC", false, changeSummaryType, type_C);
DataObject type_DDO = defineType("D_uri", "D");
type_D = (SDOType)typeHelper.define(type_DDO);
propertyD = setUpProperty("propertyD", true, dataObjectType, type_D);
DataObject type_EDO = defineType("E_uri", "E");
type_E = (SDOType)typeHelper.define(type_EDO);
propertyE = setUpProperty("propertyE", false, SDOConstants.SDO_STRING, type_E);
root = (SDODataObject)dataFactory.create(rootType);
dataObjectB = root.createDataObject(rootContainingPropertyB, type_B);
dataObjectC = root.createDataObject(rootContainingPropertyC, type_C);
dataObjectD = dataObjectB.createDataObject(propertyB, type_D);
dataObjectE = dataObjectD.createDataObject(propertyD, type_E);
}
protected void checkOldSettingsSizeTree(String values, SDOChangeSummary aCS,//
SDODataObject aDO1, SDODataObject aDO2, SDODataObject aDO3, SDODataObject aDO4, SDODataObject aDO5) {
checkOldSettingsSizeTree(values, aCS, aDO1, aDO2, aDO3, aDO4);
assertEquals(Integer.parseInt(values.substring(5, 6)), aCS.getOldValues(aDO5).size());
}
protected void checkOldContainer(SDOChangeSummary aCS,//
SDODataObject aDO1, Object anObject1,//
SDODataObject aDO2, Object anObject2,//
SDODataObject aDO3, Object anObject3,//
SDODataObject aDO4, Object anObject4,//
SDODataObject aDO5, Object anObject5) {
checkOldContainer(aCS,//
aDO1, anObject1,//
aDO2, anObject2,//
aDO3, anObject3,//
aDO4, anObject4);
assertEquals(anObject5, aCS.getOldContainer(aDO5));
}
protected void buildTreeWithoutChildChangeSummaries() {
SDOType dataObjectType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.DATAOBJECT);
DataObject type_BDO = defineType("B_uri", "B");
type_B = (SDOType)typeHelper.define(type_BDO);
propertyB = setUpProperty("propertyB", true, dataObjectType, type_B);
DataObject type_CDO = defineType("C_uri", "C");
type_C = (SDOType)typeHelper.define(type_CDO);
propertyC = setUpProperty("propertyC", true, dataObjectType, type_C);
DataObject type_DDO = defineType("D_uri", "D");
type_D = (SDOType)typeHelper.define(type_DDO);
propertyD = setUpProperty("propertyD", false, SDOConstants.SDO_STRING, type_D);
dataObjectB = root.createDataObject(rootContainingPropertyB, type_B);
dataObjectC = root.createDataObject(rootContainingPropertyC, type_C);
dataObjectD = dataObjectB.createDataObject(propertyB, type_D);
}
protected void buildTreeWithoutChangeSummary() {
SDOType dataObjectType = (SDOType) typeHelper.getType(SDOConstants.SDO_URL, SDOConstants.DATAOBJECT);
DataObject type_root1DO = defineType("root1_uri", "root1");
type_root1 = (SDOType)typeHelper.define(type_root1DO);
p_root1 = setUpProperty("p_root1", true, dataObjectType, type_root1);
root1 = (SDODataObject)dataFactory.create(type_root1);
DataObject type_FDO = defineType("F_uri", "F");
type_F = (SDOType)typeHelper.define(type_FDO);
p_F = setUpProperty("p_F", false, SDOConstants.SDO_STRING, type_F);
dataObjectF = root1.createDataObject(p_root1, type_F);
dataObjectF.set(p_F, "test");
}
}