|
Commons IO example source code file (XmlStreamWriterTest.java)
The Commons IO XmlStreamWriterTest.java source code
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.io.output;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
import junit.framework.TestCase;
/**
* @author Herve Boutemy
* @version $Id: XmlStreamWriterTest.java 1004737 2010-10-05 17:56:04Z niallp $
*/
public class XmlStreamWriterTest extends TestCase {
/** french */
private static final String TEXT_LATIN1 = "eacute: \u00E9";
/** greek */
private static final String TEXT_LATIN7 = "alpha: \u03B1";
/** euro support */
private static final String TEXT_LATIN15 = "euro: \u20AC";
/** japanese */
private static final String TEXT_EUC_JP = "hiragana A: \u3042";
/** Unicode: support everything */
private static final String TEXT_UNICODE = TEXT_LATIN1 + ", " + TEXT_LATIN7
+ ", " + TEXT_LATIN15 + ", " + TEXT_EUC_JP;
private static String createXmlContent(String text, String encoding) {
String xmlDecl = "<?xml version=\"1.0\"?>";
if (encoding != null) {
xmlDecl = "<?xml version=\"1.0\" encoding=\"" + encoding + "\"?>";
}
String xml = xmlDecl + "\n<text>" + text + "";
return xml;
}
private static void checkXmlContent(String xml, String encoding, String defaultEncoding)
throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
XmlStreamWriter writer = new XmlStreamWriter(out, defaultEncoding);
writer.write(xml);
writer.close();
byte[] xmlContent = out.toByteArray();
assertEquals(encoding, writer.getEncoding());
assertTrue(Arrays.equals(xml.getBytes(encoding), xmlContent));
}
private static void checkXmlWriter(String text, String encoding)
throws IOException {
checkXmlWriter(text, encoding, null);
}
private static void checkXmlWriter(String text, String encoding, String defaultEncoding)
throws IOException {
String xml = createXmlContent(text, encoding);
String effectiveEncoding = encoding;
if (effectiveEncoding == null) {
effectiveEncoding = (defaultEncoding == null ? "UTF-8" : defaultEncoding);
}
checkXmlContent(xml, effectiveEncoding, defaultEncoding);
}
public void testNoXmlHeader() throws IOException {
String xml = "<text>text with no XML header";
checkXmlContent(xml, "UTF-8", null);
}
public void testEmpty() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
XmlStreamWriter writer = new XmlStreamWriter(out);
writer.flush();
writer.write("");
writer.flush();
writer.write(".");
writer.flush();
writer.close();
}
public void testDefaultEncoding() throws IOException {
checkXmlWriter(TEXT_UNICODE, null, null);
checkXmlWriter(TEXT_UNICODE, null, "UTF-8");
checkXmlWriter(TEXT_UNICODE, null, "UTF-16");
checkXmlWriter(TEXT_UNICODE, null, "UTF-16BE");
checkXmlWriter(TEXT_UNICODE, null, "ISO-8859-1");
}
public void testUTF8Encoding() throws IOException {
checkXmlWriter(TEXT_UNICODE, "UTF-8");
}
public void testUTF16Encoding() throws IOException {
checkXmlWriter(TEXT_UNICODE, "UTF-16");
}
public void testUTF16BEEncoding() throws IOException {
checkXmlWriter(TEXT_UNICODE, "UTF-16BE");
}
public void testUTF16LEEncoding() throws IOException {
checkXmlWriter(TEXT_UNICODE, "UTF-16LE");
}
public void testLatin1Encoding() throws IOException {
checkXmlWriter(TEXT_LATIN1, "ISO-8859-1");
}
public void testLatin7Encoding() throws IOException {
checkXmlWriter(TEXT_LATIN7, "ISO-8859-7");
}
public void testLatin15Encoding() throws IOException {
checkXmlWriter(TEXT_LATIN15, "ISO-8859-15");
}
public void testEUC_JPEncoding() throws IOException {
checkXmlWriter(TEXT_EUC_JP, "EUC-JP");
}
public void testEBCDICEncoding() throws IOException {
checkXmlWriter("simple text in EBCDIC", "CP1047");
}
}
Other Commons IO examples (source code examples)Here is a short list of links related to this Commons IO XmlStreamWriterTest.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 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.