package org.hibernate.property.access.spi;
import java.lang.reflect.Field;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* @author Vlad Mihalcea
*/
public class GetterFieldImplTest {
@Test
public void testGet() throws Exception {
Target target = new Target();
assertEquals( true, getter( "active" ).get( target ) );
assertEquals( (byte) 2, getter( "children" ).get( target ) );
assertEquals( 'M', getter( "gender" ).get( target ) );
assertEquals( Integer.MAX_VALUE, getter( "code" ).get( target ) );
assertEquals( Long.MAX_VALUE, getter( "id" ).get( target ) );
assertEquals( (short) 34, getter( "age" ).get( target ) );
assertEquals( "John Doe", getter( "name" ).get( target ) );
}
private static class Target {
private boolean active = true;
private byte children = 2;
private char gender = 'M';
private int code = Integer.MAX_VALUE;
private long id = Long.MAX_VALUE;
private short age = 34;
private String name = "John Doe";
}
private Getter getter(String property) {
try {
Field field = Target.class.getDeclaredField( property );
field.setAccessible( true );
return new GetterFieldImpl( Target.class, property, field );
}
catch (NoSuchFieldException e) {
throw new IllegalArgumentException( e );
}
}
}