package test.utils; import com.firefly.utils.ReflectUtils; import org.junit.Assert; import org.junit.Test; import static org.hamcrest.Matchers.is; public class TestReflectUtils { @Test public void testGetterAndSetterMethod() { Assert.assertThat(ReflectUtils.getGetterMethod(Foo.class, "name").getName(), is("getName")); Assert.assertThat(ReflectUtils.getGetterMethod(Foo.class, "failure").getName(), is("isFailure")); Assert.assertThat(ReflectUtils.getSetterMethod(Foo.class, "name").getName(), is("setName")); Assert.assertThat(ReflectUtils.getSetterMethod(Foo.class, "failure").getName(), is("setFailure")); Assert.assertThat(ReflectUtils.getSetterMethod(Foo.class, "iPad").getName(), is("setiPad")); Assert.assertThat(ReflectUtils.getSetterMethod(Foo.class, "iPhone").getName(), is("setiPhone")); Assert.assertThat(ReflectUtils.getGetterMethod(Foo.class, "iPad").getName(), is("isiPad")); Assert.assertThat(ReflectUtils.getGetterMethod(Foo.class, "iPhone").getName(), is("getiPhone")); } @Test public void testGetAndSet() throws Throwable { Foo foo = new Foo(); ReflectUtils.set(foo, "price", 4.44); ReflectUtils.set(foo, "failure", true); ReflectUtils.set(foo, "name", "foo hello"); Assert.assertThat(ReflectUtils.get(foo, "price"), is(4.44)); Assert.assertThat(ReflectUtils.get(foo, "failure"), is(true)); Assert.assertThat(ReflectUtils.get(foo, "name"), is("foo hello")); } @Test public void testCopy() throws Throwable { Foo foo = new Foo(); foo.setName("hello foo"); foo.setPrice(3.3); foo.setNumber(40); Foo2 foo2 = new Foo2(); foo2.setName("hello foo2"); ReflectUtils.copy(foo2, foo); Assert.assertThat(foo.getName(), is("hello foo2")); Assert.assertThat(foo.getNumber(), is(40)); } public static class Foo2 { private String name; private Integer number; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } } public static class Foo { private boolean failure; public String name; private int number; private double price; public int num2; public String info; private String iPhone; private boolean iPad; public String getiPhone() { return iPhone; } public void setiPhone(String iPhone) { this.iPhone = iPhone; } public boolean isiPad() { return iPad; } public void setiPad(boolean iPad) { this.iPad = iPad; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public boolean isFailure() { return failure; } public void setFailure(boolean failure) { this.failure = failure; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setProperty(String name, boolean failure) { this.name = name; this.failure = failure; } } }