samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java Sat Jun 14 09:53:03 2008 +0200
1.3 @@ -0,0 +1,57 @@
1.4 +
1.5 +package org.apidesign.delegatingwriter;
1.6 +
1.7 +import java.io.BufferedWriter;
1.8 +import java.io.IOException;
1.9 +import java.io.StringWriter;
1.10 +import java.io.Writer;
1.11 +import org.junit.After;
1.12 +import org.junit.Before;
1.13 +import org.junit.Test;
1.14 +import static org.junit.Assert.*;
1.15 +
1.16 +/**
1.17 + *
1.18 + * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
1.19 + */
1.20 +public class BufferedWriterThrowingExceptionTest {
1.21 + private StringWriter writer;
1.22 +
1.23 + public BufferedWriterThrowingExceptionTest() {
1.24 + }
1.25 +
1.26 + @Before
1.27 + public void setUp() {
1.28 + writer = new StringWriter();
1.29 + }
1.30 +
1.31 + @Test
1.32 + public void testBehaviourOfRealBufferInJDK() throws IOException {
1.33 + BufferedWriter bufferedWriter = new BufferedWriter(writer);
1.34 + doAppendHello(bufferedWriter, "Hello!");
1.35 + bufferedWriter.flush();
1.36 +
1.37 + assertEquals("Hello!", writer.toString());
1.38 + }
1.39 +
1.40 + @Test
1.41 + public void testBehaviourOfBufferThatThrowsExceptionWhenAppendIsCalled() throws IOException {
1.42 + BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.THROW_EXCEPTION);
1.43 + doAppendHello(bufferedWriter, "Hello!");
1.44 + bufferedWriter.flush();
1.45 +
1.46 + assertEquals("Hello!", writer.toString());
1.47 + }
1.48 +
1.49 +
1.50 + private void doAppendHello(BufferedWriter bufferedWriter, CharSequence what) throws IOException {
1.51 + // BEGIN: writer.throw.client
1.52 + try {
1.53 + bufferedWriter.append(what);
1.54 + } catch (UnsupportedOperationException ex) {
1.55 + bufferedWriter.write(what.toString());
1.56 + }
1.57 + // END: writer.throw.client
1.58 + }
1.59 +
1.60 +}
1.61 \ No newline at end of file