samples/delegatingwriter/test/org/apidesign/delegatingwriter/BufferedWriterCryptoTest.java
2 package org.apidesign.delegatingwriter;
4 import java.io.IOException;
5 import java.io.StringWriter;
6 import java.io.StringWriter;
7 import org.junit.Before;
9 import static org.junit.Assert.*;
11 /** Emulates what goes wrong when delegating directly
13 * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
15 public class BufferedWriterCryptoTest {
16 private StringWriter writer;
19 public BufferedWriterCryptoTest() {
24 writer = new StringWriter();
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
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()
49 public void testBehaviourWhenDelegatingConditionallyIsOK() throws IOException {
50 CryptoWriter bufferedWriter = new CryptoWriter(writer, AltBufferedWriter.Behaviour.DELEGATE_CONDITIONALLY);
51 bufferedWriter.append("VMS");
52 bufferedWriter.flush();
53 assertEquals("Converted", "WNT", writer.toString());