Home | History | Annotate | Download | only in hamcrest
      1 package org.hamcrest;
      2 
      3 import org.junit.Test;
      4 
      5 import static org.junit.Assert.assertEquals;
      6 
      7 public final class BaseDescriptionTest {
      8 
      9     private final StringBuilder result = new StringBuilder();
     10 
     11     private final BaseDescription baseDescription = new BaseDescription() {
     12         @Override protected void append(char c) {
     13             result.append(c);
     14         }
     15     };
     16 
     17     @Test public void
     18     describesAppendedNullValue() {
     19         baseDescription.appendValue(null);
     20         assertEquals("null", result.toString());
     21     }
     22 
     23     @Test public void
     24     quotesAppendedStringValue() {
     25         baseDescription.appendValue("foo");
     26         assertEquals("\"foo\"", result.toString());
     27     }
     28 
     29     @Test public void
     30     quotesAppendedCharacterValue() {
     31         baseDescription.appendValue('f');
     32         assertEquals("\"f\"", result.toString());
     33     }
     34 
     35     @Test public void
     36     bracketsAppendedShortValue() {
     37         baseDescription.appendValue(Short.valueOf("2"));
     38         assertEquals("<2s>", result.toString());
     39     }
     40 
     41     @Test public void
     42     bracketsAppendedLongValue() {
     43         baseDescription.appendValue(Long.valueOf("2"));
     44         assertEquals("<2L>", result.toString());
     45     }
     46 
     47     @Test public void
     48     bracketsAppendedFloatValue() {
     49         baseDescription.appendValue(Float.valueOf("1.2"));
     50         assertEquals("<1.2F>", result.toString());
     51     }
     52 
     53     @Test public void
     54     describesAppendedArrayValue() {
     55         baseDescription.appendValue(new String[] {"2", "3"});
     56         assertEquals("[\"2\", \"3\"]", result.toString());
     57     }
     58 
     59     @Test public void
     60     bracketsAppendedObjectValue() {
     61         final Object value = new Object();
     62         baseDescription.appendValue(value);
     63         assertEquals("<" + value.toString() + ">", result.toString());
     64     }
     65 
     66     @Test public void
     67     safelyDescribesAppendedValueOfObjectWhoseToStringThrowsAnException() {
     68         final Object value = new Object() {
     69             @Override public String toString() {
     70                 throw new UnsupportedOperationException();
     71             }
     72         };
     73 
     74         final String expected = value.getClass().getName() + "@" + Integer.toHexString(value.hashCode());
     75         baseDescription.appendValue(value);
     76         assertEquals("<" + expected + ">", result.toString());
     77     }
     78 }
     79