4 package jp.sourceforge.mikutoga.binio;
6 import java.io.ByteArrayOutputStream;
7 import java.io.IOException;
8 import java.io.PipedOutputStream;
9 import java.nio.charset.CharacterCodingException;
10 import java.nio.charset.Charset;
11 import java.nio.charset.CharsetEncoder;
12 import org.junit.After;
13 import org.junit.AfterClass;
14 import org.junit.Before;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
17 import static org.junit.Assert.*;
22 public class TextExporterTest {
24 private static Charset CS_ASCII = Charset.forName("US-ASCII");
25 private static Charset CS_UTF8 = Charset.forName("UTF-8");
27 public TextExporterTest() {
31 public static void setUpClass() {
35 public static void tearDownClass() {
43 public void tearDown() {
47 * Test of getEncoder method, of class TextExporter.
50 public void testGetEncoder() {
51 System.out.println("getEncoder");
54 cs = Charset.forName("US-ASCII");
55 CharsetEncoder usenc = cs.newEncoder();
57 TextExporter exporter;
60 exporter = new TextExporter(cs);
61 enc = exporter.getEncoder();
62 assertEquals(usenc.charset(), enc.charset());
64 exporter = new TextExporter(usenc);
65 enc = exporter.getEncoder();
66 assertEquals(usenc.charset(), enc.charset());
72 * Test of setCharBufSize method, of class TextExporter.
75 public void testSetBufSize() {
76 System.out.println("setCharBufSize");
78 TextExporter exporter;
79 ByteArrayOutputStream bout = new ByteArrayOutputStream();
81 exporter = new TextExporter(CS_UTF8);
82 exporter.setCharBufSize(1);
83 exporter.setByteBufSize(4);
86 exporter.encodeToByteStream("あいう", bout);
87 }catch(CharacterCodingException e){
90 assertEquals(9, bout.size());
93 exporter.setByteBufSize(3);
95 }catch(IllegalArgumentException e){
103 * Test of dumpText method, of class TextExporter.
106 public void testDumpText() throws Exception {
107 System.out.println("dumpText");
109 TextExporter exporter;
110 ByteArrayOutputStream bout;
113 exporter = new TextExporter(CS_ASCII);
115 bout = new ByteArrayOutputStream();
116 exporter.dumpText("ABC", bout);
117 assertEquals(3, bout.size());
118 barr = bout.toByteArray();
119 assertEquals(3, barr.length);
120 assertEquals((byte)0x41, barr[0]);
121 assertEquals((byte)0x42, barr[1]);
122 assertEquals((byte)0x43, barr[2]);
124 PipedOutputStream pout;
125 pout = new PipedOutputStream();
127 exporter.dumpText("ABC", pout);
129 }catch(IOException e){
137 * Test of encodeToByteStream method, of class TextExporter.
140 public void testEncodeToByteStream() throws Exception {
141 System.out.println("encodeToByteStream");
143 TextExporter exporter;
144 ByteArrayOutputStream bout = new ByteArrayOutputStream();
147 exporter = new TextExporter(CS_ASCII);
150 exporter.encodeToByteStream("ABC", bout);
151 assertEquals(3, bout.size());
152 barr = bout.toByteArray();
153 assertEquals(3, barr.length);
154 assertEquals((byte)0x41, barr[0]);
155 assertEquals((byte)0x42, barr[1]);
156 assertEquals((byte)0x43, barr[2]);
159 exporter.encodeToByteStream("", bout);
160 assertEquals(0, bout.size());
164 exporter.encodeToByteStream("あ", bout);
166 }catch(CharacterCodingException e){
170 exporter = new TextExporter(CS_UTF8);
172 exporter.encodeToByteStream("あ", bout);
173 assertEquals(3, bout.size());
174 barr = bout.toByteArray();
175 assertEquals(3, barr.length);
176 assertEquals((byte)0xe3, barr[0]);
177 assertEquals((byte)0x81, barr[1]);
178 assertEquals((byte)0x82, barr[2]);