/** * */ package nl.ipo.cds.admin.ba.controller; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.reset; import static org.easymock.EasyMock.verify; import java.io.File; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import junit.framework.Assert; import nl.ipo.cds.admin.ba.util.DownloadUtils; import nl.ipo.cds.dao.ManagerDao; import nl.ipo.cds.domain.DatasetType; import nl.ipo.cds.domain.JobLog; import nl.ipo.cds.domain.ValidateJob; import nl.ipo.cds.etl.theme.protectedSite.ProtectedSiteValidator; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; /** * @author eshuism * 21 mei 2012 */ @ContextConfiguration({ "classpath:/nl/ipo/cds/dao/dao-applicationContext-test.xml" ,"classpath:/nl/ipo/cds/admin/ba/controller/admin-applicationContext-test.xml" ,"classpath:/nl/ipo/cds/etl/reporting/geom/geometry-applicationContext.xml" ,"classpath:/nl/ipo/cds/context/propertyConfigurer-test.xml" }) public class DownloadControllerTest extends AbstractJUnit4SpringContextTests { @Autowired private DownloadController downloadController; @Autowired private ManagerDao managerDao; @Before public void before(){ Assert.assertNotNull(downloadController); Assert.assertNotNull(managerDao); // Reset mocks between tests reset(this.managerDao); } @Test public void testCreateZipFile(){ File zipFile = DownloadUtils.createZipFile(""+UUID.randomUUID(), "dataseType", new Timestamp(new Date().getTime())); Assert.assertNotNull(zipFile); } @Test public void testDownLoadShapeFile(){ // Create Job ValidateJob job = new ValidateJob(); job.setId(100L); job.setFinishTime(new Timestamp(new Date().getTime())); DatasetType datasetType = new DatasetType(); datasetType.setNaam("testDatasetType"); job.setDatasetType(datasetType); job.setGeometryErrorCount(2); // Create JobLog JobLog jobLog = new JobLog(); jobLog.setId(1L); jobLog.setMessage("Dit is een geometrie-foutmelding"); jobLog.setKey(ProtectedSiteValidator.MessageKey.GEOMETRY_INTERIOR_RINGS_INTERSECT.name()); jobLog.setX(new Double(0)); jobLog.setY(new Double(12.12)); jobLog.setGmlId("theGmlId"); jobLog.setJob(job); List<JobLog> jobLogs = new ArrayList<JobLog>(); jobLogs.add(jobLog); expect(this.managerDao.getJob(job.getId())).andReturn(job); expect(this.managerDao.findJobLog(job)).andReturn(jobLogs); // Stop recording, start playing replay(this.managerDao); // MockHttpServlet classes MockHttpServletRequest httpServletRequest = new MockHttpServletRequest(); MockHttpServletResponse httpServletResponse = new MockHttpServletResponse(); downloadController.downLoadShapeFile(job.getId(), httpServletRequest, httpServletResponse); // Verify the expected behaviour occurred verify(this.managerDao); } }