package org.simpleflatmapper.reflect.test;
import org.junit.Test;
import org.simpleflatmapper.reflect.setter.MethodSetter;
import org.simpleflatmapper.reflect.primitive.BooleanMethodSetter;
import org.simpleflatmapper.reflect.primitive.BooleanSetter;
import org.simpleflatmapper.reflect.primitive.ByteMethodSetter;
import org.simpleflatmapper.reflect.primitive.ByteSetter;
import org.simpleflatmapper.reflect.primitive.CharacterMethodSetter;
import org.simpleflatmapper.reflect.primitive.CharacterSetter;
import org.simpleflatmapper.reflect.primitive.DoubleMethodSetter;
import org.simpleflatmapper.reflect.primitive.DoubleSetter;
import org.simpleflatmapper.reflect.primitive.FloatMethodSetter;
import org.simpleflatmapper.reflect.primitive.FloatSetter;
import org.simpleflatmapper.reflect.primitive.IntMethodSetter;
import org.simpleflatmapper.reflect.primitive.IntSetter;
import org.simpleflatmapper.reflect.primitive.LongMethodSetter;
import org.simpleflatmapper.reflect.primitive.LongSetter;
import org.simpleflatmapper.reflect.primitive.ShortMethodSetter;
import org.simpleflatmapper.reflect.primitive.ShortSetter;
import org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter;
import org.simpleflatmapper.test.beans.Foo;
import static org.junit.Assert.assertEquals;
public class MethodSetterTest {
@Test
public void testSet() throws Exception {
MethodSetter<Foo, String> setter = new MethodSetter<Foo, String>(Foo.class.getDeclaredMethod("setFoo", String.class));
SetterHelperTest.validateFooSetter(setter);
assertEquals("MethodSetter{method=public void org.simpleflatmapper.test.beans.Foo.setFoo(java.lang.String)}", setter.toString());
}
DbPrimitiveObjectWithSetter object = new DbPrimitiveObjectWithSetter();
@Test
public void testSetBoolean() throws Exception {
BooleanSetter<DbPrimitiveObjectWithSetter> setter = new BooleanMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpBoolean", boolean.class));
setter.setBoolean(object, true);
assertEquals(true, object.ispBoolean());
assertEquals("BooleanMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpBoolean(boolean)}", setter.toString());
}
@Test
public void testSetByte() throws Exception {
ByteSetter<DbPrimitiveObjectWithSetter> setter =
new ByteMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpByte", byte.class));
setter.setByte(object, (byte)0xc3);
assertEquals((byte)0xc3, object.getpByte());
assertEquals("ByteMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpByte(byte)}", setter.toString());
}
@Test
public void testSetCharacter() throws Exception {
CharacterSetter<DbPrimitiveObjectWithSetter> setter =
new CharacterMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpCharacter", char.class));
setter.setCharacter(object, 'g');
assertEquals('g', object.getpCharacter());
assertEquals("CharacterMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpCharacter(char)}", setter.toString());
}
@Test
public void testSetShort() throws Exception {
ShortSetter<DbPrimitiveObjectWithSetter> setter =
new ShortMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpShort", short.class));
setter.setShort(object, (short)33);
assertEquals((short)33, object.getpShort());
assertEquals("ShortMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpShort(short)}", setter.toString());
}
@Test
public void testSetInt() throws Exception {
IntSetter<DbPrimitiveObjectWithSetter> setter =
new IntMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpInt", int.class));
setter.setInt(object, 35);
assertEquals(35, object.getpInt());
assertEquals("IntMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpInt(int)}", setter.toString());
}
@Test
public void testSetLong() throws Exception {
LongSetter<DbPrimitiveObjectWithSetter> setter =
new LongMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpLong", long.class));
setter.setLong(object, 35l);
assertEquals(35l, object.getpLong());
assertEquals("LongMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpLong(long)}", setter.toString());
}
@Test
public void testSetFloat() throws Exception {
FloatSetter<DbPrimitiveObjectWithSetter> setter =
new FloatMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpFloat", float.class));
setter.setFloat(object, 3.14f);
assertEquals(3.14f, object.getpFloat(), 0);
assertEquals("FloatMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpFloat(float)}", setter.toString());
}
@Test
public void testSetDouble() throws Exception {
DoubleSetter<DbPrimitiveObjectWithSetter> setter =
new DoubleMethodSetter<DbPrimitiveObjectWithSetter>(DbPrimitiveObjectWithSetter.class.getDeclaredMethod("setpDouble", double.class));
setter.setDouble(object, 3.144);
assertEquals(3.144, object.getpDouble(), 0);
assertEquals("DoubleMethodSetter{method=public void org.simpleflatmapper.test.beans.DbPrimitiveObjectWithSetter.setpDouble(double)}", setter.toString());
}
}