/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.report.domain; import java.util.LinkedList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.After; import static org.junit.Assert.*; import org.apache.commons.collections.MapUtils; import org.hibernate.Session; import org.hibernate.SessionFactory; import com.globant.katari.hibernate.coreuser.domain.Role; import com.globant.katari.hibernate.coreuser.domain.RoleRepository; import com.globant.katari.report.ReportsTestSupport; /** Test class for reports. * @author andres.ventura */ public class ReportRepositoryTest { private JasperReportRepository reportRepository; private RoleRepository roleRepository; private Session session; @Before public void setUp() throws Exception { reportRepository = ReportsTestSupport.getRepository(); roleRepository = (RoleRepository) ReportsTestSupport .getApplicationContext().getBean("coreuser.roleRepository"); session = ((SessionFactory) ReportsTestSupport.getApplicationContext() .getBean("katari.sessionFactory")).openSession(); session.createSQLQuery("delete from report_required_roles") .executeUpdate(); session.createQuery("delete ReportDefinition").executeUpdate(); session.createQuery("delete Role").executeUpdate(); roleRepository.save(new Role("ADMINISTRATOR")); roleRepository.save(new Role("REPORT_ADMIN")); roleRepository.save(new Role("GUEST")); createSampleReport(); } /** Creates a sample report called test. */ private void createSampleReport() throws Exception { ReportDefinition definition = new ReportDefinition("test", "description", ReportsTestSupport.getSampleReportBytes()); Role admin = roleRepository.findRoleByName("ADMINISTRATOR"); definition.addRole(admin); reportRepository.save(definition); } @Test public void testFindReportsByRole() throws Exception { final List<Role> roles = roleRepository.getRoles(); List<ReportDefinition> reports; reports = reportRepository.findReportsByRole(roles); assertNotNull(reports); assertEquals(1, reports.size()); reports = reportRepository.findReportsByRole(new LinkedList<Role>()); assertNotNull(reports); assertEquals(0, reports.size()); } @SuppressWarnings("unchecked") @Test public void testGetDropdownOptions() throws Exception { ParameterDefinition parameterDefinition = new ParameterDefinition("test_param",String.class.getName(), true, "select id as value, name as label from roles"); List<DropdownOptions> options = reportRepository.getDropdownOptions( parameterDefinition, MapUtils.EMPTY_MAP); assertEquals(3, options.size()); } @Test public void testFindReportDefinition() throws Exception { ReportDefinition testReport = reportRepository.findReportDefinition("test"); assertNotNull(testReport); } @After public void tearDown() { session.close(); } }