samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 64 7b26c64804c2
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
     1 
     2 package org.apidesign.delegatingwriter;
     3 
     4 import java.io.BufferedWriter;
     5 import java.io.IOException;
     6 import java.io.StringWriter;
     7 import org.junit.Before;
     8 import org.junit.Test;
     9 import static org.junit.Assert.*;
    10 
    11 /**
    12  *
    13  * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
    14  */
    15 public class BufferedWriterThrowingExceptionTest {
    16     private StringWriter writer;
    17     
    18     public BufferedWriterThrowingExceptionTest() {
    19     }
    20 
    21     @Before
    22     public void setUp() {
    23         writer = new StringWriter();
    24     }
    25     
    26     @Test
    27     public void testBehaviourOfRealBufferInJDK() throws IOException {
    28         BufferedWriter bufferedWriter = new BufferedWriter(writer);
    29         doAppendHello(bufferedWriter, "Hello!");
    30         bufferedWriter.flush();
    31         
    32         assertEquals("Hello!", writer.toString());
    33     }
    34 
    35     @Test
    36     public void testBehaviourOfBufferThatThrowsExceptionWhenAppendIsCalled() throws IOException {
    37         BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.THROW_EXCEPTION);
    38         doAppendHello(bufferedWriter, "Hello!");
    39         bufferedWriter.flush();
    40         
    41         assertEquals("Hello!", writer.toString());
    42     }
    43 
    44     @Test
    45     public void testBehaviourWhenDelegatingConditionallyIsOK() throws IOException {
    46         BufferedWriter bufferedWriter = new AltBufferedWriter(writer, AltBufferedWriter.Behaviour.DELEGATE_CONDITIONALLY);
    47         doAppendHello(bufferedWriter, "Hello!");
    48         bufferedWriter.flush();
    49         
    50         assertEquals("Hello!", writer.toString());
    51     }
    52 
    53     private void doAppendHello(BufferedWriter bufferedWriter, CharSequence what) throws IOException {
    54         // BEGIN: writer.throw.client
    55         try {
    56             bufferedWriter.append(what);
    57         } catch (UnsupportedOperationException ex) {
    58             bufferedWriter.write(what.toString());
    59         }
    60         // END: writer.throw.client
    61     }
    62     
    63 }