samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterCryptoTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:04 +0200
changeset 63 cbba5b31d11c
child 64 7b26c64804c2
permissions -rw-r--r--
CrytoWriter and when it is broken
jtulach@63
     1
jtulach@63
     2
package org.apidesign.delegatingwriter;
jtulach@63
     3
jtulach@63
     4
import java.io.IOException;
jtulach@63
     5
import java.io.StringWriter;
jtulach@63
     6
import java.io.StringWriter;
jtulach@63
     7
import org.junit.Before;
jtulach@63
     8
import org.junit.Test;
jtulach@63
     9
import static org.junit.Assert.*;
jtulach@63
    10
jtulach@63
    11
/** Emulates what goes wrong when delegating directly
jtulach@63
    12
 *
jtulach@63
    13
 * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jtulach@63
    14
 */
jtulach@63
    15
public class BufferedWriterCryptoTest {
jtulach@63
    16
    private StringWriter writer;
jtulach@63
    17
    
jtulach@63
    18
    
jtulach@63
    19
    public BufferedWriterCryptoTest() {
jtulach@63
    20
    }
jtulach@63
    21
    
jtulach@63
    22
    @Before
jtulach@63
    23
    public void setUp() {
jtulach@63
    24
        writer = new StringWriter();
jtulach@63
    25
    }
jtulach@63
    26
jtulach@63
    27
    @Test
jtulach@63
    28
    public void testBehaviourOfRealBufferInJDKWorksFine() throws IOException {
jtulach@63
    29
        // BEGIN: writer.crypto.ok
jtulach@63
    30
        CryptoWriter bufferedWriter = new CryptoWriter(writer);
jtulach@63
    31
        bufferedWriter.append("VMS");
jtulach@63
    32
        bufferedWriter.flush();
jtulach@63
    33
        assertEquals("Converted", "WNT", writer.toString());
jtulach@63
    34
        // END: writer.crypto.ok
jtulach@63
    35
    }
jtulach@63
    36
jtulach@63
    37
    @Test
jtulach@63
    38
    public void testBehaviourOfBufferThatDelegatesToAppendFails() throws IOException {
jtulach@63
    39
        CryptoWriter bufferedWriter = new CryptoWriter(writer, CryptoWriter.Behaviour.DELEGATE_TO_OUT);
jtulach@63
    40
        bufferedWriter.append("VMS");
jtulach@63
    41
        bufferedWriter.flush();
jtulach@63
    42
        assertEquals("This will fail, as the direct delegation from append to " +
jtulach@63
    43
            "the underlaying writer will skip all the crypto methods", 
jtulach@63
    44
            "WNT", writer.toString()
jtulach@63
    45
        );
jtulach@63
    46
    }
jtulach@63
    47
jtulach@63
    48
}