| /* |
| * 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; |
| } |
| } |
| } |