Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 898 → Rev 899

/sun/hostcaptain/trunk/src/ak/webcontrol/core/model/test/Test.java
0,0 → 1,164
package ak.webcontrol.core.model.test;
 
import net.sf.hibernate.*;
import ak.webcontrol.core.model.*;
import ak.webcontrol.util.*;
 
public class Test
{
public static void test()
throws Exception
{
// delete objects if they are already in the database
HibernateUtil.currentSession().delete(
"from MailAlias where address like ?", "%@test.domain", Hibernate.STRING);
HibernateUtil.currentSession().delete(
"from SystemUser where uid=?", new Integer(1001), Hibernate.INTEGER);
HibernateUtil.currentSession().delete(
"from Mailbox where login=?", "testuser@test.domain", Hibernate.STRING);
HibernateUtil.currentSession().delete(
"from InetDomain where name=?", "test.domain", Hibernate.STRING);
HibernateUtil.currentSession().delete(
"from User where login=?", "testuser", Hibernate.STRING);
HibernateUtil.currentSession().flush();
 
User user;
InetDomain inetDomain;
Mailbox mailbox;
MailAlias mailAlias;
SystemUser systemUser;
 
// create objects
user = UserManager.getInstance().create();
user.setLogin("testuser");
user.setNewPassword("none");
UserManager.getInstance().save(user);
 
inetDomain = InetDomainManager.getInstance().create();
inetDomain.setName("test.domain");
inetDomain.setOwner(UserManager.getInstance().findForLogin("testuser"));
InetDomainManager.getInstance().save(inetDomain);
 
systemUser = SystemUserManager.getInstance().create();
systemUser.setUid(new Integer(1001));
systemUser.setName("test");
SystemUserManager.getInstance().save(systemUser);
 
mailbox = MailboxManager.getInstance().create();
mailbox.setLogin("testuser@test.domain");
mailbox.setDomain(InetDomainManager.getInstance().findForName("test.domain"));
mailbox.setOwner(UserManager.getInstance().findForLogin("testuser"));
mailbox.setVirusCheck(new Boolean(true));
mailbox.setSpamCheck(new Boolean(false));
mailbox.setSystemUser(systemUser);
MailboxManager.getInstance().save(mailbox);
 
mailAlias = MailAliasManager.getInstance().create();
mailAlias.setAddress("some.name@test.domain");
mailAlias.setDomain(InetDomainManager.getInstance().findForName("test.domain"));
mailAlias.setOwner(UserManager.getInstance().findForLogin("testuser"));
MailAliasManager.getInstance().save(mailAlias);
 
HibernateUtil.currentSession().flush();
}
 
public static void testUser()
throws Exception
{
User user = UserManager.getInstance().findForLogin("testuser");
 
if(user == null) {
System.out.println("create new user");
user = UserManager.getInstance().create();
}
else {
System.out.println("get existing user");
}
 
user.setLogin("testuser");
 
//
// benchmark hibernate update
//
int benchmarkCount = 100;
 
// first measure object change time
long startTime = System.currentTimeMillis();
for(int i = 0; i < benchmarkCount; i++) {
user.setNewPassword((i % 2 == 0) ? "a" : "b");
}
 
// then object change & DB update
long betweenTime = System.currentTimeMillis();
for(int i = 0; i < benchmarkCount; i++) {
user.setNewPassword((i % 2 == 0) ? "a" : "b");
UserManager.getInstance().save(user);
HibernateUtil.currentSession().flush();
}
 
// results
long endTime = System.currentTimeMillis();
System.out.println("Object change: " + (betweenTime-startTime) + " ms");
System.out.println("DB update: " + (endTime-betweenTime) + " ms");
 
user.setNewPassword("none");
UserManager.getInstance().save(user);
}
 
public static void testInetDomain()
throws Exception
{
InetDomain inetDomain = InetDomainManager.getInstance().findForName("test.domain");
 
if(inetDomain == null) {
System.out.println("create new domain");
inetDomain = InetDomainManager.getInstance().create();
}
else {
System.out.println("get existing domain");
}
 
inetDomain.setName("test.domain");
inetDomain.setOwner(UserManager.getInstance().findForLogin("testuser"));
 
InetDomainManager.getInstance().save(inetDomain);
}
 
public static void main(String[] args)
throws Exception
{
UserManager.getInstance();
InetDomainManager.getInstance();
SystemUserManager.getInstance();
MailboxManager.getInstance();
MailAliasManager.getInstance();
 
try {
HibernateUtil.beginTransaction();
//testUser();
//testInetDomain();
test();
HibernateUtil.commitTransaction();
}
catch(Exception ex) {
ex.printStackTrace();
HibernateUtil.rollbackTransaction();
throw ex;
}
finally {
HibernateUtil.closeSession();
}
}
 
private static String randomString(int len)
throws java.io.UnsupportedEncodingException
{
byte[] buf = new byte[len];
 
for(int i = 0; i < len; i++) {
buf[i] = (byte)(Math.random() * 26 + 97);
}
 
return new String(buf, "ascii");
}
}