### Question:
CSVs { public static CSVWriters writers() { return new CSVWriters(); } private  CSVs(); static CSVWriters writers(); static CSVWriters writers(CSVConfig config); static CSVReaders readers(File file); static CSVReaders readers(String file); static CSVReaders readers(File file, CSVConfig config); static CSVReaders readers(String file, CSVConfig config); static BeanMappingCSVReaders<T> readers(File file, Class<T> type); static BeanMappingCSVReaders<T> readers(File file, CSVConfig config, Class<T> type); static BeanMappingCSVReaders<T> readers(String file, Class<T> type); static BeanMappingCSVReaders<T> readers(String file, CSVConfig config, Class<T> type);  }### Answer:
@Test public void OPENしていなければ書き込みできない() { thrown.expect(InternalException.class); thrown.expectMessage("ストリームがオープンされていない状態での書込操作は許可されていません。"); CSVs.writers().write(new String[] { "テスト1", "テスト2" }); }
@Test public void OPEN後に書き込みできる() throws Exception { CSVWriters writers = CSVs.writers(CSVConfigs.config().tempDir(file.getRoot().getAbsolutePath())).touch().open(); writers.write(new String[] {}); writers.write(new String[] { null }); writers.write(new String[] { "いろは", "<,>", "<\t>", "<\\t>" }); writers.write(new String[] { "<'>", "<\">", "<\r\n>" }); DownloadFile f = writers.get(); assertThat(writers.count(), is(4)); writers.close(); File tmp = new File(f.getTempFileName()); String content = FileUtils.readFileToString(tmp, "MS932"); assertThat(content, is(file.load("CSVsTest-OPEN後に書き込みできる.csv"))); }
@Test public void CSVWriterをクローズ中に例外が発生した場合は例外が変換される() throws Exception { thrown.expect(InternalException.class); thrown.expectMessage("ストリームをクローズ中にIO例外が発生しました。"); CSVWriter m = mock(CSVWriter.class); doThrow(new IOException()).when(m).close(); CSVWriters writer = CSVs.writers(); writer.csv = m; writer.close(); }
@Test public void Writerをクローズ中に例外が発生した場合は例外が変換される() throws Exception { thrown.expect(InternalException.class); thrown.expectMessage("ストリームをクローズ中にIO例外が発生しました。"); Writer m = mock(Writer.class); doThrow(new IOException()).when(m).close(); CSVWriters writer = CSVs.writers(); writer.writer = m; writer.close(); }
@Test public void OutputStreamWriterをクローズ中に例外が発生した場合は例外が変換される() throws Exception { thrown.expect(InternalException.class); thrown.expectMessage("ストリームをクローズ中にIO例外が発生しました。"); OutputStreamWriter m = mock(OutputStreamWriter.class); doThrow(new IOException()).when(m).close(); CSVWriters writer = CSVs.writers(); writer.osw = m; writer.close(); }
@Test public void FileOutputStreamをクローズ中に例外が発生した場合は例外が変換される() throws Exception { thrown.expect(InternalException.class); thrown.expectMessage("ストリームをクローズ中にIO例外が発生しました。"); FileOutputStream m = mock(FileOutputStream.class); doThrow(new IOException()).when(m).close(); CSVWriters writer = CSVs.writers(); writer.fos = m; writer.close(); }