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