|
Groovy example source code file (XmlNodePrinterTest.groovy)
The Groovy XmlNodePrinterTest.groovy source codepackage 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: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.