1 4 package com.tc.util; 5 6 import com.tc.text.NonPortableReasonFormatter; 7 8 import java.util.LinkedList ; 9 import java.util.List ; 10 11 import junit.framework.TestCase; 12 13 public class NonPortableReasonTest extends TestCase { 14 private NonPortableReason reason; 15 16 public void setUp() { 17 this.reason = new NonPortableReason(getClass(), NonPortableReason.TEST_REASON); 18 } 19 20 public void testAcceptFormatter() { 21 TestNonPortableReasonFormatter formatter = new TestNonPortableReasonFormatter(); 22 this.reason.addDetail("label1", "value1"); 23 this.reason.addDetail("label2", "value2"); 24 this.reason.accept(formatter); 25 26 assertEquals(1, formatter.formatReasonTextCalls.size()); 28 29 assertEquals(2, formatter.formatDetailsCalls.size()); 31 assertReasonEquals("label1", "value1", formatter.formatDetailsCalls.get(0)); 32 assertReasonEquals("label2", "value2", formatter.formatDetailsCalls.get(1)); 33 } 34 35 private void assertReasonEquals(String label, String value, Object o) { 36 NonPortableDetail detail = (NonPortableDetail)o; 37 assertEquals(label, detail.getLabel()); 38 assertEquals(value, detail.getValue()); 39 } 40 41 private static final class TestNonPortableReasonFormatter implements NonPortableReasonFormatter { 42 43 public final List formatReasonTextCalls = new LinkedList (); 44 public final List formatDetailsCalls = new LinkedList (); 45 public final List flushCalls = new LinkedList (); 46 47 public void formatReasonText(String reasonText) { 48 formatReasonTextCalls.add(reasonText); 49 } 50 51 public void formatDetail(NonPortableDetail detail) { 52 formatDetailsCalls.add(detail); 53 } 54 55 public void flush() { 56 flushCalls.add(new Object ()); 57 } 58 59 public void formatReasonTypeName(byte reasonType) { 60 return; 61 } 62 63 } 64 } 65 | Popular Tags |