blob: a48042f93d320e8c8076ed1c7b075048f5880159 [file] [log] [blame]
package org.eclipse.persistence.testing.sdo.helper.xmlhelper.loadandsave.withoutxsd;
import java.io.FileInputStream;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.List;
import org.eclipse.persistence.sdo.SDOConstants;
import org.eclipse.persistence.sdo.SDOType;
import org.eclipse.persistence.sdo.helper.delegates.SDOXMLHelperDelegate;
import org.eclipse.persistence.testing.sdo.SDOTestCase;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import commonj.sdo.DataObject;
import commonj.sdo.helper.XMLDocument;
public class LoadAndSaveWithSimpleTypeTestCases extends SDOTestCase {
public LoadAndSaveWithSimpleTypeTestCases(String name) {
super(name);
// TODO Auto-generated constructor stub
}
public void testLoadFromStringSaveDocumentToWriter() throws Exception {
FileInputStream inputStream = new FileInputStream(getControlFileName());
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
DataObject optionsDataObject = dataFactory.create(SDOConstants.ORACLE_SDO_URL, SDOConstants.XMLHELPER_LOAD_OPTIONS);
optionsDataObject.set(SDOConstants.TYPE_LOAD_OPTION, SDOConstants.SDO_INTEGER);
XMLDocument document = xmlHelper.load(new StringReader(new String(bytes)), "", optionsDataObject);
verifyAfterLoad(document);
StringWriter writer = new StringWriter();
xmlHelper.save(document, writer, null);
compareXML(getControlWriteFileName(), writer.toString());
}
private String getControlWriteFileName() {
return "./org/eclipse/persistence/testing/sdo/helper/xmlhelper/loadandsave/bigint_write.xml";
}
private void verifyAfterLoad(XMLDocument document) {
DataObject obj = document.getRootObject();
Object value = obj.get(0);
assertTrue(value instanceof java.math.BigInteger);
}
private String getControlFileName() {
return "./org/eclipse/persistence/testing/sdo/helper/xmlhelper/loadandsave/bigint.xml";
}
protected void compareXML(String controlFileName, String testString) throws Exception {
compareXML(controlFileName, testString, true);
}
protected void compareXML(String controlFileName, String testString, boolean compareNodes) throws Exception {
String controlString = getControlString(controlFileName);
log("Expected:" + controlString);
log("Actual :" + testString);
StringReader reader = new StringReader(testString);
InputSource inputSource = new InputSource(reader);
Document testDocument = parser.parse(inputSource);
reader.close();
if (compareNodes) {
assertXMLIdentical(getDocument(controlFileName), testDocument);
}
}
private String getControlString(String controlFileName) {
try {
FileInputStream inputStream = new FileInputStream(controlFileName);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
return new String(bytes);
} catch (Exception e) {
e.printStackTrace();
fail("An error occurred loading the control document");
return null;
}
}
}