1 21 22 package com.jaspersoft.jasperserver.api.metadata.view.service.impl; 23 24 import java.util.ArrayList ; 25 import java.util.Date ; 26 import java.util.List ; 27 28 import junit.framework.TestCase; 29 import junit.textui.TestRunner; 30 31 import org.hibernate.Session; 32 import org.hibernate.SessionFactory; 33 import org.springframework.context.support.ClassPathXmlApplicationContext; 34 import org.springframework.orm.hibernate3.HibernateTemplate; 35 import org.springframework.orm.hibernate3.SessionFactoryUtils; 36 import org.springframework.orm.hibernate3.SessionHolder; 37 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 38 import org.springframework.transaction.support.TransactionSynchronizationManager; 39 40 import com.jaspersoft.jasperserver.api.metadata.common.domain.Folder; 41 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFolder; 42 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.RepoReportUnit; 43 import com.jaspersoft.jasperserver.api.metadata.user.domain.User; 44 import com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoRole; 45 import com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser; 46 47 48 52 public class HibernateAccessTest extends TestCase { 53 54 public static int NUMBER_OF_TEST_ROLES = 5; 55 56 SessionFactory sf; 57 RepoReportUnit testObject; 58 RepoFolder root; 59 HibernateTemplate template; 60 61 User testUser; 62 List testRoles = new ArrayList (NUMBER_OF_TEST_ROLES); 63 64 public HibernateAccessTest(String name) { 65 super(name); 66 } 67 68 public static void main(String [] args) { 69 TestRunner.run(HibernateAccessTest.class); 70 } 71 72 public void setUp() throws Exception { 73 System.out.println("Setup HibernateAccessTest"); 74 ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext( 75 new String [] {"hibernateConfig.xml", "viewService.xml"}); 76 82 sf = (SessionFactory) appContext.getBean("sessionFactory"); 83 Session s = sf.openSession(); 84 85 TransactionSynchronizationManager.bindResource(sf, new SessionHolder(s)); 86 87 HibernateDaoSupport dao = (HibernateDaoSupport) appContext.getBean("jasperServerDao"); 88 template = dao.getHibernateTemplate(); 89 90 final RepoFolder root = new RepoFolder(); 92 root.setCreationDate(new Date ()); 93 root.setName(Folder.SEPARATOR); 94 root.setLabel("root"); 95 root.setDescription("Root of the folder hierarchy"); 96 root.setURI(Folder.SEPARATOR); 97 root.setHidden(false); 98 root.setParent(null); 99 template.save(root); 100 } 101 102 public void tearDown() { 103 System.out.println("Tear down HibernateAccessTest"); 104 SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sf); 123 124 Session s = holder.getSession(); 125 126 s.flush(); 127 TransactionSynchronizationManager.unbindResource(sf); 128 SessionFactoryUtils.releaseSession(s, sf); 129 130 131 } 132 133 public void createReportUnit() throws Exception { 134 System.out.println("createReportUnit"); 135 136 final RepoReportUnit testObjectImpl = new RepoReportUnit(); 137 testObjectImpl.setCreationDate(new Date ()); 138 testObjectImpl.setDescription("Test"); 139 testObjectImpl.setName("Test"); 140 testObjectImpl.setLabel("Test"); 141 testObjectImpl.setParent(root); 142 final Long testObjectId = (Long ) template.save(testObjectImpl); 143 assertNotNull("testObjectId", testObjectId); 144 testObject = (RepoReportUnit) template.load(RepoReportUnit.class, testObjectId); 145 assertNotNull("testObject", testObject); 146 } 147 148 public void createUser() throws Exception { 149 System.out.println("createUser"); 150 final RepoUser testUserImpl = new RepoUser(); 151 testUserImpl.setUsername("TestUser"); 152 testUserImpl.setFullName("TestUser"); 153 testUserImpl.setPassword("newPassword"); 154 testUserImpl.setEnabled(true); 155 testUserImpl.setExternallyDefined(false); 156 157 Long testObjectId = (Long ) template.save(testUserImpl); 158 testUser = (User) template.load(RepoUser.class, testObjectId); 159 assertNotNull("testUser null", testUser); 160 } 161 162 public void createRoles() throws Exception { 163 System.out.println("testCreateRoles"); 164 for (int i = 0; i < NUMBER_OF_TEST_ROLES; i++) { 165 final RepoRole testRoleImpl = new RepoRole(); 166 String roleName = "TestRole" + i; 167 testRoleImpl.setRoleName(roleName); 168 testRoleImpl.setExternallyDefined(false); 169 170 template.saveOrUpdate(testRoleImpl); 171 172 testRoles.add(testRoleImpl); 173 174 testUser.addRole(testRoleImpl); 175 } 176 177 template.saveOrUpdate(testUser); 178 assertTrue("testUser.getRoles().size()", testUser.getRoles().size() == NUMBER_OF_TEST_ROLES); 179 } 180 181 public void disabled_testReportUnitQuery() throws Exception { 182 183 createReportUnit(); 184 185 System.out.println("testQuery"); 186 List result = template.find("from RepoReportUnit where name = ?", "Test"); 187 assertNotNull("result", result); 188 assertTrue("result.size() == 1", result.size() == 1); 189 testObject = (RepoReportUnit) result.get(0); 190 } 191 192 public void testUserQuery() throws Exception { 193 createUser(); 194 createRoles(); 195 196 System.out.println("testUserQuery"); 197 198 List result = template.find("from RepoUser where username = ?", "TestUser"); 199 200 assertNotNull("result", result); 201 assertTrue("result.size() == 1",result.size() == 1); 202 203 System.out.println("testUserQuery: found result OK"); 204 205 testUser = (User) result.get(0); 206 assertNotNull("testUser", testUser); 207 assertNotNull("testUser.getRoles()", testUser.getRoles()); 208 assertTrue("testUser.getRoles().size()", testUser.getRoles().size() == NUMBER_OF_TEST_ROLES); 209 210 System.out.println("testUserQuery: roles OK"); 211 } 212 } 213 | Popular Tags |