samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java
2 package org.apidesign.delegatingwriter;
4 import java.io.BufferedWriter;
5 import java.io.IOException;
6 import java.io.StringWriter;
8 import org.junit.After;
9 import org.junit.Before;
10 import org.junit.Test;
11 import static org.junit.Assert.*;
15 * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
17 public class BufferedWriterThrowingExceptionTest {
18 private StringWriter writer;
20 public BufferedWriterThrowingExceptionTest() {
25 writer = new StringWriter();
29 public void testBehaviourOfRealBufferInJDK() throws IOException {
30 BufferedWriter bufferedWriter = new BufferedWriter(writer);
31 doAppendHello(bufferedWriter, "Hello!");
32 bufferedWriter.flush();
34 assertEquals("Hello!", writer.toString());
38 public void testBehaviourOfBufferThatThrowsExceptionWhenAppendIsCalled() throws IOException {
39 BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.THROW_EXCEPTION);
40 doAppendHello(bufferedWriter, "Hello!");
41 bufferedWriter.flush();
43 assertEquals("Hello!", writer.toString());
47 private void doAppendHello(BufferedWriter bufferedWriter, CharSequence what) throws IOException {
48 // BEGIN: writer.throw.client
50 bufferedWriter.append(what);
51 } catch (UnsupportedOperationException ex) {
52 bufferedWriter.write(what.toString());
54 // END: writer.throw.client