4 package jp.sfjp.mikutoga.bin.export;
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 constructor, of class TextExporter.
51 public void testCons() throws Exception {
52 System.out.println("constructor");
57 exp = new TextExporter((Charset)null);
59 }catch(NullPointerException e){
64 exp = new TextExporter((CharsetEncoder)null);
66 }catch(NullPointerException e){
74 * Test of getEncoder method, of class TextExporter.
77 public void testGetEncoder() {
78 System.out.println("getEncoder");
81 cs = Charset.forName("US-ASCII");
82 CharsetEncoder usenc = cs.newEncoder();
84 TextExporter exporter;
87 exporter = new TextExporter(cs);
88 enc = exporter.getEncoder();
89 assertEquals(usenc.charset(), enc.charset());
91 exporter = new TextExporter(usenc);
92 enc = exporter.getEncoder();
93 assertEquals(usenc.charset(), enc.charset());
99 * Test of setCharBufSize method, of class TextExporter.
102 public void testSetBufSize() {
103 System.out.println("setCharBufSize");
105 TextExporter exporter;
106 ByteArrayOutputStream bout = new ByteArrayOutputStream();
108 exporter = new TextExporter(CS_UTF8);
109 exporter.setCharBufSize(1);
110 exporter.setByteBufSize(4);
113 exporter.encodeToByteStream("あいう", bout);
114 }catch(CharacterCodingException e){
117 assertEquals(9, bout.size());
120 exporter.setByteBufSize(3);
122 }catch(IllegalArgumentException e){
127 exporter.setCharBufSize(0);
129 }catch(IllegalArgumentException e){
137 * Test of dumpText method, of class TextExporter.
141 public void testDumpText() throws Exception {
142 System.out.println("dumpText");
144 TextExporter exporter;
145 ByteArrayOutputStream bout;
148 exporter = new TextExporter(CS_ASCII);
150 bout = new ByteArrayOutputStream();
151 exporter.dumpText("ABC", bout);
152 assertEquals(3, bout.size());
153 barr = bout.toByteArray();
154 assertEquals(3, barr.length);
155 assertEquals((byte)0x41, barr[0]);
156 assertEquals((byte)0x42, barr[1]);
157 assertEquals((byte)0x43, barr[2]);
159 PipedOutputStream pout;
160 pout = new PipedOutputStream();
162 exporter.dumpText("ABC", pout);
164 }catch(IOException e){
172 * Test of encodeToByteStream method, of class TextExporter.
176 public void testEncodeToByteStream() throws Exception {
177 System.out.println("encodeToByteStream");
179 TextExporter exporter;
180 ByteArrayOutputStream bout = new ByteArrayOutputStream();
183 exporter = new TextExporter(CS_ASCII);
186 exporter.encodeToByteStream("ABC", bout);
187 assertEquals(3, bout.size());
188 barr = bout.toByteArray();
189 assertEquals(3, barr.length);
190 assertEquals((byte)0x41, barr[0]);
191 assertEquals((byte)0x42, barr[1]);
192 assertEquals((byte)0x43, barr[2]);
195 exporter.encodeToByteStream("", bout);
196 assertEquals(0, bout.size());
200 exporter.encodeToByteStream("あ", bout);
202 }catch(CharacterCodingException e){
206 exporter = new TextExporter(CS_UTF8);
208 exporter.encodeToByteStream("あ", bout);
209 assertEquals(3, bout.size());
210 barr = bout.toByteArray();
211 assertEquals(3, barr.length);
212 assertEquals((byte)0xe3, barr[0]);
213 assertEquals((byte)0x81, barr[1]);
214 assertEquals((byte)0x82, barr[2]);