package com.vst.service;
import java.util.List;
import java.util.ArrayList;
import com.vst.service.BaseManagerTestCase;
import com.vst.dao.ObjectPhotoDao;
import com.vst.model.ObjectPhoto;
import com.vst.service.impl.ObjectPhotoManagerImpl;
import org.jmock.Mock;
import org.springframework.orm.ObjectRetrievalFailureException;
public class ObjectPhotoManagerTest extends BaseManagerTestCase {
private final String objectPhotoId = "1";
private ObjectPhotoManagerImpl objectPhotoManager = new ObjectPhotoManagerImpl();
private Mock objectPhotoDao = null;
protected void setUp() throws Exception {
super.setUp();
objectPhotoDao = new Mock(ObjectPhotoDao.class);
objectPhotoManager.setObjectPhotoDao((ObjectPhotoDao) objectPhotoDao.proxy());
}
protected void tearDown() throws Exception {
super.tearDown();
objectPhotoManager = null;
}
public void testGetObjectPhotos() throws Exception {
List results = new ArrayList();
ObjectPhoto objectPhoto = new ObjectPhoto();
results.add(objectPhoto);
// set expected behavior on dao
objectPhotoDao.expects(once()).method("getObjectPhotos")
.will(returnValue(results));
List objectPhotos = objectPhotoManager.getObjectPhotos(null);
assertTrue(objectPhotos.size() == 1);
objectPhotoDao.verify();
}
public void testGetObjectPhoto() throws Exception {
// set expected behavior on dao
objectPhotoDao.expects(once()).method("getObjectPhoto")
.will(returnValue(new ObjectPhoto()));
ObjectPhoto objectPhoto = objectPhotoManager.getObjectPhoto(objectPhotoId);
assertTrue(objectPhoto != null);
objectPhotoDao.verify();
}
public void testSaveObjectPhoto() throws Exception {
ObjectPhoto objectPhoto = new ObjectPhoto();
// set expected behavior on dao
objectPhotoDao.expects(once()).method("saveObjectPhoto")
.with(same(objectPhoto)).isVoid();
objectPhotoManager.saveObjectPhoto(objectPhoto);
objectPhotoDao.verify();
}
public void testAddAndRemoveObjectPhoto() throws Exception {
ObjectPhoto objectPhoto = new ObjectPhoto();
// set required fields
// set expected behavior on dao
objectPhotoDao.expects(once()).method("saveObjectPhoto")
.with(same(objectPhoto)).isVoid();
objectPhotoManager.saveObjectPhoto(objectPhoto);
objectPhotoDao.verify();
// reset expectations
objectPhotoDao.reset();
objectPhotoDao.expects(once()).method("removeObjectPhoto").with(eq(new Long(objectPhotoId)));
objectPhotoManager.removeObjectPhoto(objectPhotoId);
objectPhotoDao.verify();
// reset expectations
objectPhotoDao.reset();
// remove
Exception ex = new ObjectRetrievalFailureException(ObjectPhoto.class, objectPhoto.getPhotoId());
objectPhotoDao.expects(once()).method("removeObjectPhoto").isVoid();
objectPhotoDao.expects(once()).method("getObjectPhoto").will(throwException(ex));
objectPhotoManager.removeObjectPhoto(objectPhotoId);
try {
objectPhotoManager.getObjectPhoto(objectPhotoId);
fail("ObjectPhoto with identifier '" + objectPhotoId + "' found in database");
} catch (ObjectRetrievalFailureException e) {
assertNotNull(e.getMessage());
}
objectPhotoDao.verify();
}
}