blob: c85246dcb4e8c4a1dd157ef4ff510a9d75620f8c [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
/**
* @version $Header: ChangeSummaryLoadSaveTest.java 24-jan-2007.08:33:09 dmahar Exp $
* @author mfobrien
* @since release specific (what release of product did this appear in)
*/
package org.eclipse.persistence.testing.sdo.model.changesummary;
import java.io.FileInputStream;
import java.io.IOException;
import org.eclipse.persistence.sdo.SDODataObject;
public class ChangeSummaryLoadSaveTest extends ChangeSummaryLoadSaveTestCases {
protected static final String XSD_CSROOT_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot.xsd";
protected static final String XML_CSROOT_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot.xml";
protected static final String XML_CSROOT_LOGGING_ON_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_log_on.xml";
protected static final String XML_CSROOT_LOGGING_OFF_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_log_off.xml";
protected static final String XML_CSROOT_LOGGING_ON_DEL_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_log_on_del.xml";
protected static final String XML_CSROOT_LOGGING_ON_MOD_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_log_on_mod.xml";
protected static final String XML_CSROOT_LOGGING_ON_DEL_MOD_PATH//
= "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_log_on_del_mod.xml";
public static final String XML_PATH_UC1_2 = "org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_uc1-2.xml";
protected String getControlFileName() {
return ("org/eclipse/persistence/testing/sdo/model/changesummary/team_csroot_uc1-2.xml");
}
public ChangeSummaryLoadSaveTest(String name) {
super(name);
}
@Override
public void setUp() {
try {
super.setUp();
// load in the schema
String xsdString = getXSDString(XSD_CSROOT_PATH);
// Define Types so that processing attributes completes
xsdHelper.define(xsdString);
// get root data object with ChangeSummary on root
//root = loadObjectFromXML(XML_CSROOT_PATH);
} catch (Exception e) {
e.printStackTrace();
fail("ChangeSummaryLoadSaveTest.setup() failed to load DataObject");
}
}
public void testLoadSaveCSonRoot() throws IOException {
SDODataObject aRoot = null;
SDODataObject aRoot2 = null;
try {
//Project p = ((SDOXMLHelper)xmlHelper).getTopLinkProject();
//XMLProjectWriter projectWriter = new XMLProjectWriter();
//PrintWriter pw = new PrintWriter(System.out);
//projectWriter.write(p, pw);
// get root data object with ChangeSummary on root
aRoot = loadObjectFromXML(XML_CSROOT_PATH);
// verify that changeSummary property has been populated on the instance
assertTrue(aRoot.getChangeSummary().isLogging());
aRoot2 = loadObjectFromXML(XML_PATH_UC1_2);
assertTrue(aRoot2.getChangeSummary().isLogging());
//System.out.println("1 logging: " + aRoot.getChangeSummary().isLogging());
//System.out.println("2 logging: " + aRoot2.getChangeSummary().isLogging());
// temp
//setChangeSummary(aRoot);
//setChangeSummary(aRoot2);
// temp: set logging
//aRoot.getChangeSummary().beginLogging();
//aRoot2.getChangeSummary().endLogging();
//aRoot2.getChangeSummary().beginLogging();
//aRoot.getChangeSummary().endLogging();
//aRoot2.getChangeSummary().endLogging();
// perform mod
((SDODataObject)aRoot2.get("manager")).delete();
// save objects
//System.out.println("1 logging: " + aRoot.getChangeSummary().isLogging());
//System.out.println("2 logging: " + aRoot2.getChangeSummary().isLogging());
xmlHelper.save(aRoot, null, "root", System.out);
xmlHelper.save(aRoot2, null, "root", System.out);
} catch (Exception e) {
e.printStackTrace();
fail("ChangeSummaryLoadSaveTest Exception: " + e.getMessage());
}
}
public void testLoadSaveCSonRootLoggingOff() throws IOException {
SDODataObject aRoot = null;
// get root data object with ChangeSummary on root
aRoot = loadObjectFromXML(XML_CSROOT_LOGGING_OFF_PATH);
assertNotNull(aRoot.getChangeSummary());
assertFalse(aRoot.getChangeSummary().isLogging());
// perform mod
SDODataObject aManager = (SDODataObject)aRoot.get("manager");
assertNotNull(aManager);
aManager.set("name", "Jane Doe2");
// save objects
serialize(aRoot, "object.xml");
//xmlHelper.save(aRoot, null, "root", System.out);
// compare
}
/*
public void testUC1_2LoadRootOf3LevelWithChangeOnRootLoggingOnBeforeSubChildDelete() throws IOException {
//
setChangeSummary(root);
// create/add new employee
SDODataObject employee = (SDODataObject)root.createDataObject("manager");
employee.set("name", "Jane Doe2");
// create/add address
SDODataObject address = (SDODataObject)employee.createDataObject("address");
address.set("street", "123 A Street");
// start logging
root.getChangeSummary().beginLogging();
assertTrue(root.getChangeSummary().isLogging());
xmlHelper.save(root, null, "root", System.out);
// delete address
address.delete();
// marshal object to xml
//StringWriter writer = new StringWriter();
//xmlHelper.save(root, writer, null);
xmlHelper.save(root, null, "root", System.out);
// unmarshal xml to object
//SDODataObject objectFromXML = loadObjectFromXML(XML_PATH_UC1_2);
SDODataObject objectFromXML = loadObjectFromXML(XML_CSROOT_PATH);
//assertTrue(objectFromXML.getChangeSummary().isLogging());
objectFromXML.getChangeSummary().beginLogging();
assertTrue(objectFromXML.getChangeSummary().isLogging());
// end logging
//objectFromXML.getChangeSummary()
xmlHelper.save(objectFromXML, null, "root", System.out);
//compareXML(getControlString(getControlFileName()), writer.toString());
// cs field is null, cs prop is filled but rootDataObject is null
//xmlHelper.save(objectFromXML, null, "root", System.out);
// logging should be on and the changeSummary should be populated
assertNotNull(objectFromXML.getChangeSummary());
assertTrue(objectFromXML.getChangeSummary().isLogging());
// the original and deserialized objects should be the same
//assertTrue(equalityHelper.equal(root, objectFromXML));
}
*/
protected String getControlString(String fileName) {
try {
FileInputStream inputStream = new FileInputStream(fileName);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
return new String(bytes);
} catch (Exception e) {
fail("An error occurred loading the control document");
e.printStackTrace();
return null;
}
}
}