package org.appfuse.service.impl;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.util.ConvertUtil;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* A mock class for testing using Mockito.
*
* @author mraible
*/
@RunWith(MockitoJUnitRunner.class)
public abstract class BaseManagerMockTestCase {
/**
* A logger
*/
protected final Log log = LogFactory.getLog(getClass());
/**
* The resourceBundle
*/
protected ResourceBundle rb;
/**
* Default constructor will set the ResourceBundle if needed.
*/
public BaseManagerMockTestCase() {
// Since a ResourceBundle is not required for each class, just
// do a simple check to see if one exists
String className = this.getClass().getName();
try {
rb = ResourceBundle.getBundle(className);
} catch (MissingResourceException mre) {
//log.debug("No resource bundle found for: " + className);
}
}
/**
* Utility method to populate a javabean-style object with values
* from a Properties file
*
* @param obj the model object to populate
* @return Object populated object
* @throws Exception if BeanUtils fails to copy properly
*/
protected Object populate(Object obj) throws Exception {
// loop through all the beans methods and set its properties from
// its .properties file
Map map = ConvertUtil.convertBundleToMap(rb);
BeanUtils.copyProperties(obj, map);
return obj;
}
}