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