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