/**
*
*/
package org.activejpa.util;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
import org.activejpa.ActiveJpaException;
import org.testng.annotations.Test;
/**
* @author ganeshs
*
*/
public class PropertyUtilTest {
@Test
public void shouldReturnTrueIfTypeIsPrimitiveOrWrapper() throws SecurityException, NoSuchFieldException {
assertTrue(PropertyUtil.isPrimitiveOrWrapper(DummyClass.class.getField("primitiveInt").getType()));
}
@Test
public void shouldReturnFalseIfTypeIsNotPrimitiveOrNotWrapper() throws SecurityException, NoSuchFieldException {
assertFalse(PropertyUtil.isPrimitiveOrWrapper(DummyClass.class.getField("object").getType()));
}
@Test
public void shouldGetReadMethod() {
DummyClass clazz = new DummyClass();
assertNotNull(PropertyUtil.getReadMethod(clazz, "fieldWithGetter"));
}
@Test
public void shouldNotGetReadMethod() {
DummyClass clazz = new DummyClass();
try {
PropertyUtil.getReadMethod(clazz, "fieldWithoutGetter");
fail("Expected exception but got none");
} catch (ActiveJpaException e) {
}
}
@Test
public void shouldSetPropertyWithValue() {
DummyClass clazz = new DummyClass();
PropertyUtil.setProperty(clazz, "wrapperInt", 100);
assertEquals(clazz.getWrapperInt(), Integer.valueOf(100));
}
@Test
public void shouldGetPropertyValue() {
DummyClass clazz = new DummyClass();
clazz.wrapperInt = 100;
assertEquals(PropertyUtil.getProperty(clazz, "wrapperInt"), 100);
}
@Test
public void shouldNotGetPropertyValue() {
DummyClass clazz = new DummyClass();
assertNull(PropertyUtil.getProperty(clazz, "nonExistingField"));
}
public static class DummyClass {
public int primitiveInt;
public Integer wrapperInt;
public Object object;
public Object fieldWithGetter;
public Object fieldWithoutGetter;
/**
* @return
*/
public Object getFieldWithGetter() {
return fieldWithGetter;
}
/**
* @return the primitiveInt
*/
public int getPrimitiveInt() {
return primitiveInt;
}
/**
* @param primitiveInt the primitiveInt to set
*/
public void setPrimitiveInt(int primitiveInt) {
this.primitiveInt = primitiveInt;
}
/**
* @return the wrapperInt
*/
public Integer getWrapperInt() {
return wrapperInt;
}
/**
* @param wrapperInt the wrapperInt to set
*/
public void setWrapperInt(Integer wrapperInt) {
this.wrapperInt = wrapperInt;
}
/**
* @return the object
*/
public Object getObject() {
return object;
}
/**
* @param object the object to set
*/
public void setObject(Object object) {
this.object = object;
}
/**
* @param fieldWithGetter the fieldWithGetter to set
*/
public void setFieldWithGetter(Object fieldWithGetter) {
this.fieldWithGetter = fieldWithGetter;
}
}
}