samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterCryptoTest.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterCryptoTest.java Sat Jun 14 09:53:04 2008 +0200
1.3 @@ -0,0 +1,48 @@
1.4 +
1.5 +package org.apidesign.delegatingwriter;
1.6 +
1.7 +import java.io.IOException;
1.8 +import java.io.StringWriter;
1.9 +import java.io.StringWriter;
1.10 +import org.junit.Before;
1.11 +import org.junit.Test;
1.12 +import static org.junit.Assert.*;
1.13 +
1.14 +/** Emulates what goes wrong when delegating directly
1.15 + *
1.16 + * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
1.17 + */
1.18 +public class BufferedWriterCryptoTest {
1.19 + private StringWriter writer;
1.20 +
1.21 +
1.22 + public BufferedWriterCryptoTest() {
1.23 + }
1.24 +
1.25 + @Before
1.26 + public void setUp() {
1.27 + writer = new StringWriter();
1.28 + }
1.29 +
1.30 + @Test
1.31 + public void testBehaviourOfRealBufferInJDKWorksFine() throws IOException {
1.32 + // BEGIN: writer.crypto.ok
1.33 + CryptoWriter bufferedWriter = new CryptoWriter(writer);
1.34 + bufferedWriter.append("VMS");
1.35 + bufferedWriter.flush();
1.36 + assertEquals("Converted", "WNT", writer.toString());
1.37 + // END: writer.crypto.ok
1.38 + }
1.39 +
1.40 + @Test
1.41 + public void testBehaviourOfBufferThatDelegatesToAppendFails() throws IOException {
1.42 + CryptoWriter bufferedWriter = new CryptoWriter(writer, CryptoWriter.Behaviour.DELEGATE_TO_OUT);
1.43 + bufferedWriter.append("VMS");
1.44 + bufferedWriter.flush();
1.45 + assertEquals("This will fail, as the direct delegation from append to " +
1.46 + "the underlaying writer will skip all the crypto methods",
1.47 + "WNT", writer.toString()
1.48 + );
1.49 + }
1.50 +
1.51 +}
1.52 \ No newline at end of file