package com.vst.service;
import java.util.List;
import java.util.ArrayList;
import com.vst.service.BaseManagerTestCase;
import com.vst.dao.ParameterDao;
import com.vst.model.Parameter;
import com.vst.service.impl.ParameterManagerImpl;
import org.jmock.Mock;
import org.springframework.orm.ObjectRetrievalFailureException;
public class ParameterManagerTest extends BaseManagerTestCase {
private final String parameterId = "1";
private ParameterManagerImpl parameterManager = new ParameterManagerImpl();
private Mock parameterDao = null;
protected void setUp() throws Exception {
super.setUp();
parameterDao = new Mock(ParameterDao.class);
parameterManager.setParameterDao((ParameterDao) parameterDao.proxy());
}
protected void tearDown() throws Exception {
super.tearDown();
parameterManager = null;
}
public void testGetParameters() throws Exception {
List results = new ArrayList();
Parameter parameter = new Parameter();
results.add(parameter);
// set expected behavior on dao
parameterDao.expects(once()).method("getParameters")
.will(returnValue(results));
List parameters = parameterManager.getParameters(null);
assertTrue(parameters.size() == 1);
parameterDao.verify();
}
public void testGetParameter() throws Exception {
// set expected behavior on dao
parameterDao.expects(once()).method("getParameter")
.will(returnValue(new Parameter()));
Parameter parameter = parameterManager.getParameter(parameterId);
assertTrue(parameter != null);
parameterDao.verify();
}
public void testSaveParameter() throws Exception {
Parameter parameter = new Parameter();
// set expected behavior on dao
parameterDao.expects(once()).method("saveParameter")
.with(same(parameter)).isVoid();
parameterManager.saveParameter(parameter);
parameterDao.verify();
}
public void testAddAndRemoveParameter() throws Exception {
Parameter parameter = new Parameter();
// set required fields
// set expected behavior on dao
parameterDao.expects(once()).method("saveParameter")
.with(same(parameter)).isVoid();
parameterManager.saveParameter(parameter);
parameterDao.verify();
// reset expectations
parameterDao.reset();
parameterDao.expects(once()).method("removeParameter").with(eq(new Long(parameterId)));
parameterManager.removeParameter(parameterId);
parameterDao.verify();
// reset expectations
parameterDao.reset();
// remove
Exception ex = new ObjectRetrievalFailureException(Parameter.class, parameter.getParameterId());
parameterDao.expects(once()).method("removeParameter").isVoid();
parameterDao.expects(once()).method("getParameter").will(throwException(ex));
parameterManager.removeParameter(parameterId);
try {
parameterManager.getParameter(parameterId);
fail("Parameter with identifier '" + parameterId + "' found in database");
} catch (ObjectRetrievalFailureException e) {
assertNotNull(e.getMessage());
}
parameterDao.verify();
}
}