samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterThrowingExceptionTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:03 +0200
changeset 61 59df94cee246
child 64 7b26c64804c2
permissions -rw-r--r--
Demo for writer throwing an exception; and also writing out CD content
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@61
    46
jtulach@61
    47
    private void doAppendHello(BufferedWriter bufferedWriter, CharSequence what) throws IOException {
jtulach@61
    48
        // BEGIN: writer.throw.client
jtulach@61
    49
        try {
jtulach@61
    50
            bufferedWriter.append(what);
jtulach@61
    51
        } catch (UnsupportedOperationException ex) {
jtulach@61
    52
            bufferedWriter.write(what.toString());
jtulach@61
    53
        }
jtulach@61
    54
        // END: writer.throw.client
jtulach@61
    55
    }
jtulach@61
    56
    
jtulach@61
    57
}