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