1 4 package com.tc.text; 5 6 import com.tc.util.NonPortableDetail; 7 8 import java.io.PrintWriter ; 9 import java.io.StringWriter ; 10 import java.util.LinkedList ; 11 import java.util.List ; 12 13 import junit.framework.TestCase; 14 15 public class NonPortableReasonFormatterTest extends TestCase { 16 17 private NonPortableReasonFormatter formatter; 18 private PrintWriter out; 19 private TestParagraphFormatter paragraphFormatter; 20 private StringFormatter stringFormatter; 21 private StringWriter stringWriter; 22 private String separator; 23 24 public void setUp() { 25 stringFormatter = new StringFormatter(); 26 stringWriter = new StringWriter (); 27 out = new PrintWriter (stringWriter); 28 separator = ": "; 29 paragraphFormatter = new TestParagraphFormatter(); 30 formatter = new ConsoleNonPortableReasonFormatter(out, separator, stringFormatter, paragraphFormatter); 31 } 32 33 public void testBasics() { 34 35 String reasonText = "my reason text"; 36 formatter.formatReasonText(reasonText); 37 assertEquals(1, paragraphFormatter.formatCalls.size()); 38 assertEquals(reasonText, paragraphFormatter.formatCalls.get(0)); 39 40 NonPortableDetail detail1 = new NonPortableDetail("0123456789", "0123456789"); 42 NonPortableDetail detail2 = new NonPortableDetail("0123", "0123"); 43 formatter.formatDetail(detail1); 44 formatter.formatDetail(detail2); 45 46 StringBuffer expected = new StringBuffer (); 47 expected.append(reasonText + stringFormatter.newline()); 48 expected.append(stringFormatter.newline()); 49 expected.append("0123456789" + separator + "0123456789" + stringFormatter.newline()); 50 expected.append("0123 " + separator + "0123"); 51 52 formatter.flush(); 54 System.err.println("Expecting: <" + expected + ">, found: <" + stringWriter.getBuffer().toString() + ">"); 55 assertEquals(expected.toString(), stringWriter.getBuffer().toString()); 56 formatter.flush(); 57 assertEquals(expected.toString(), stringWriter.getBuffer().toString()); 58 } 59 60 private static final class TestParagraphFormatter implements ParagraphFormatter { 61 62 public final List formatCalls = new LinkedList (); 63 64 public String format(String in) { 65 formatCalls.add(in); 66 return in; 67 } 68 } 69 } 70 | Popular Tags |