|
Groovy example source code file (XmlNodePrinterTest.groovy)
The Groovy XmlNodePrinterTest.groovy source code
package groovy.util
class XmlNodePrinterTest extends GroovyTestCase {
StringWriter writer
PrintWriter pw
XmlNodePrinter printer
XmlParser parser
def namespaceInput = """\
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Locator xmlns="http://www.foo.com/webservices/AddressBook">
<Address>
1000 Main St
</Address>
</Locator>
</soap:Body>
</soap:Envelope>
"""
def attributeWithNamespaceInput = """\
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Locator xmlns="http://www.foo.com/webservices/AddressBook">
<Address ns1:type="Home" xmlns:ns1="http://www.foo.com/webservices/Address" ns2:country="AU" xmlns:ns2="http://www.foo.com/webservices/Address">
1000 Main St
</Address>
</Locator>
</soap:Body>
</soap:Envelope>
"""
def noNamespaceInputVerbose = """\
<Envelope>
<Body>
<Locator>
<Address>
1000 Main St
</Address>
</Locator>
</Body>
</Envelope>
"""
def noNamespaceInputCompact = """\
<Envelope>
<Body>
<Locator>
<Address>1000 Main St
</Locator>
</Body>
</Envelope>
"""
def attributeInput = """<Field Text="<html>"Some 'Text'"</html>" />"""
def attributeExpectedOutputQuot = """<Field Text="<html>"Some 'Text'"</html>"/>\n"""
def attributeExpectedOutputApos = """<Field Text='<html>"Some 'Text'"</html>'/>\n"""
def tagWithSpecialCharsInput = """<Field><&>"""
def tagWithSpecialCharsOutput = """<Field>\n <&>\n\n"""
def attributeWithNewlineInput = "<Field Text=\"Some
Text
\"/>"
def attributeWithNewlineExpectedOutput = "<Field Text=\"Some
Text
\"/>\n"
protected void setUp() {
writer = new StringWriter()
pw = new PrintWriter(writer)
printer = new XmlNodePrinter(pw, " ")
parser = new XmlParser()
}
private void setUpNoindentingPrinter() {
printer = new XmlNodePrinter(new IndentPrinter(pw, "", false))
printer.preserveWhitespace = true
}
void testNamespacesDefault() {
checkRoundtrip namespaceInput, namespaceInput
}
void testNamespacesPreserving() {
parser.trimWhitespace = false
setUpNoindentingPrinter()
checkRoundtrip namespaceInput, namespaceInput.trim()
}
void testNamespacesDisabledOnParsing() {
parser = new XmlParser(false, false)
checkRoundtrip namespaceInput, namespaceInput
}
void testNamespacesDisabledOnPrinting() {
printer.namespaceAware = false
checkRoundtrip namespaceInput, noNamespaceInputVerbose
}
void testWithoutNamespacesVerboseInDefaultOut() {
checkRoundtrip noNamespaceInputVerbose, noNamespaceInputVerbose
}
void testWithoutNamespacesVerbosePreserving() {
parser.trimWhitespace = false
setUpNoindentingPrinter()
checkRoundtrip noNamespaceInputVerbose, noNamespaceInputVerbose.trim()
}
void testWithoutNamespacesVerboseInPreserveOut() {
printer.preserveWhitespace = true
checkRoundtrip noNamespaceInputVerbose, noNamespaceInputCompact
}
void testWithoutNamespacesCompactInPreserveOut() {
printer.preserveWhitespace = true
checkRoundtrip noNamespaceInputCompact, noNamespaceInputCompact
}
void testWithoutNamespacesCompactInDefaultOut() {
checkRoundtrip noNamespaceInputCompact, noNamespaceInputVerbose
}
void testAttributeWithQuot() {
printer = new XmlNodePrinter(pw, " ", "\"")
checkRoundtrip attributeInput, attributeExpectedOutputQuot
}
void testAttributeWithApos() {
printer = new XmlNodePrinter(pw, " ", "'")
checkRoundtrip attributeInput, attributeExpectedOutputApos
}
void testAttributeWithNewline() {
checkRoundtrip attributeWithNewlineInput, attributeWithNewlineExpectedOutput
}
void testContentWithSpecialSymbols() {
printer = new XmlNodePrinter(pw, " ", "'")
checkRoundtrip tagWithSpecialCharsOutput, tagWithSpecialCharsOutput
}
void testAttributeWithNamespaceInput() {
checkRoundtrip attributeWithNamespaceInput, attributeWithNamespaceInput
}
private checkRoundtrip(String intext, String outtext) {
def root = parser.parseText(intext)
printer.print(root)
assertEquals outtext, writer.toString()
}
}
Other Groovy examples (source code examples)Here is a short list of links related to this Groovy XmlNodePrinterTest.groovy source code file: |
Other websites by Alvin Alexander:
Life/living in Alaska (OneMansAlaska.com)
How I Sold My Business (HowISoldMyBusiness.com)
Copyright 1998-2011 Alvin Alexander, devdaily.com
All Rights Reserved.