samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:05 +0200
changeset 64 7b26c64804c2
parent 61 59df94cee246
child 67 b029a28df444
permissions -rw-r--r--
Reflection will save to world!
     1 
     2 package org.apidesign.delegatingwriter;
     3 
     4 import java.io.BufferedWriter;
     5 import java.io.IOException;
     6 import java.io.StringWriter;
     7 import java.io.Writer;
     8 import org.junit.After;
     9 import org.junit.Before;
    10 import org.junit.Test;
    11 import static org.junit.Assert.*;
    12 
    13 /**
    14  *
    15  * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
    16  */
    17 public class BufferedWriterThrowingExceptionTest {
    18     private StringWriter writer;
    19     
    20     public BufferedWriterThrowingExceptionTest() {
    21     }
    22 
    23     @Before
    24     public void setUp() {
    25         writer = new StringWriter();
    26     }
    27     
    28     @Test
    29     public void testBehaviourOfRealBufferInJDK() throws IOException {
    30         BufferedWriter bufferedWriter = new BufferedWriter(writer);
    31         doAppendHello(bufferedWriter, "Hello!");
    32         bufferedWriter.flush();
    33         
    34         assertEquals("Hello!", writer.toString());
    35     }
    36 
    37     @Test
    38     public void testBehaviourOfBufferThatThrowsExceptionWhenAppendIsCalled() throws IOException {
    39         BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.THROW_EXCEPTION);
    40         doAppendHello(bufferedWriter, "Hello!");
    41         bufferedWriter.flush();
    42         
    43         assertEquals("Hello!", writer.toString());
    44     }
    45 
    46     @Test
    47     public void testBehaviourWhenDelegatingConditionallyIsOK() throws IOException {
    48         BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.DELEGATE_CONDITIONALLY);
    49         doAppendHello(bufferedWriter, "Hello!");
    50         bufferedWriter.flush();
    51         
    52         assertEquals("Hello!", writer.toString());
    53     }
    54 
    55     private void doAppendHello(BufferedWriter bufferedWriter, CharSequence what) throws IOException {
    56         // BEGIN: writer.throw.client
    57         try {
    58             bufferedWriter.append(what);
    59         } catch (UnsupportedOperationException ex) {
    60             bufferedWriter.write(what.toString());
    61         }
    62         // END: writer.throw.client
    63     }
    64     
    65 }