1 package org.pojomatic.formatter; 2 3 import org.testng.annotations.Test; 4 import org.testng.annotations.BeforeMethod; 5 import static org.testng.Assert.*; 6 import org.pojomatic.PropertyElement; 7 import org.pojomatic.TestUtils; 8 9 public class DefaultEnhancedPojoFormatterTest { 10 11 private DefaultEnhancedPojoFormatter formatter; 12 private StringBuilder builder; 13 14 private final static class Foo { 15 @SuppressWarnings("unused") 16 private String firstName, lastName, age; 17 } 18 19 private final static PropertyElement FIRST_NAME_FIELD, LAST_NAME_FIELD, AGE_FIELD; 20 static { 21 try { 22 FIRST_NAME_FIELD = TestUtils.field(Foo.class, "firstName"); 23 LAST_NAME_FIELD = TestUtils.field(Foo.class, "lastName"); 24 AGE_FIELD = TestUtils.field(Foo.class, "age"); 25 } 26 catch (Exception e) { 27 throw new RuntimeException(e); 28 } 29 } 30 31 @BeforeMethod 32 public void setUp() { 33 formatter = new DefaultEnhancedPojoFormatter(); 34 builder = new StringBuilder(); 35 } 36 37 @Test 38 public void testGetPropertyPrefix() { 39 formatter.appendPropertyPrefix(builder, FIRST_NAME_FIELD); 40 builder.append('|'); 41 formatter.appendPropertyPrefix(builder, LAST_NAME_FIELD); 42 builder.append('|'); 43 formatter.appendPropertyPrefix(builder, AGE_FIELD); 44 45 assertFormatted("firstName: {|, lastName: {|, age: {"); 46 } 47 48 @Test 49 public void testGetPropertySuffix() { 50 formatter.appendPropertySuffix(builder, FIRST_NAME_FIELD); 51 builder.append('|'); 52 formatter.appendPropertySuffix(builder, LAST_NAME_FIELD); 53 builder.append('|'); 54 formatter.appendPropertySuffix(builder, AGE_FIELD); 55 assertFormatted("}|}|}"); 56 } 57 58 @Test 59 public void testGetToStringPrefix() { 60 formatter.appendToStringPrefix(builder, Integer.class); 61 assertFormatted("Integer{"); 62 } 63 64 @Test 65 public void testGetToStringSuffix() { 66 formatter.appendToStringSuffix(builder, Integer.class); 67 assertFormatted("}"); 68 } 69 70 private void assertFormatted(String expected) { 71 assertEquals(builder.toString(), expected); 72 } 73 }