package uk.kludje.experimental.test.infer.property; import org.junit.Assert; import org.junit.Test; import uk.kludje.Meta; import uk.kludje.experimental.infer.property.NamedGetterList; public class NamedGetterListTest { @Test public void testEquality() { // setup Pojo p = new Pojo(); p.stringProp = "Hello"; // invoke String pojoDebugString = p.toString(); // verify Assert.assertEquals("Pojo {stringProp=Hello}", pojoDebugString); } private static class Pojo { private static final Meta<Pojo> META = NamedGetterList.namer(Meta.meta(Pojo.class)) .objects(Pojo::getStringProp) .list(); Object stringProp; Object getStringProp() { return stringProp; } @Override public boolean equals(Object obj) { return META.equals(this, obj); } @Override public int hashCode() { return META.hashCode(this); } @Override public String toString() { return META.toString(this); } } }