Package org.damour.base.server.hibernate

Source Code of org.damour.base.server.hibernate.GenericPageTest

package org.damour.base.server.hibernate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;

import org.damour.base.client.objects.Comment;
import org.damour.base.client.objects.File;
import org.damour.base.client.objects.Page;
import org.damour.base.client.objects.PageInfo;
import org.damour.base.client.objects.PermissibleObject;
import org.damour.base.client.objects.Photo;
import org.damour.base.client.objects.User;
import org.damour.base.server.hibernate.helpers.GenericPage;
import org.damour.base.server.hibernate.helpers.PageHelper;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;

public class GenericPageTest {

  @Test
  public void pageTest() {
    Session session = HibernateUtil.getInstance().getSession();

    Transaction tx = session.beginTransaction();
    User user = new User();
    user.setUsername("mdamour1976");
    session.save(user);

    File file = new File();
    file.setName("comment file");
    file.setOwner(user);
    session.save(file);

    for (int i = 0; i < 100; i++) {
      Comment comment = new Comment();
      comment.setComment("comment " + i);
      comment.setOwner(file.getOwner());
      comment.setAuthor(user);
      comment.setParent(file);
      session.save(comment);
    }
    tx.commit();
    session.close();

    for (int testCount = 0; testCount < 10; testCount++) {
      session = HibernateUtil.getInstance().getSession();
      GenericPage<Comment> pageController = new GenericPage<Comment>(session, Comment.class, null, 0, 10);
      long pageCount = pageController.getPageCount();
      for (int pageNumber = 0; pageNumber < pageCount; pageNumber++) {
        List<Comment> comments = pageController.getList();
        for (Comment comment : comments) {
          System.out.print(comment.getComment());
        }
        System.out.println();
        pageController = pageController.next();
      }
      session.close();
    }
  }

  @Test
  public void genericPageTest() {
    Session session = HibernateUtil.getInstance().getSession();

    Transaction tx = session.beginTransaction();

    Random r = new Random();
    List<Photo> photosList = new ArrayList<Photo>();
    for (int i = 0; i < 100; i++) {
      Photo p = new Photo();
      p.setName("photox" + i);
      p.setGlobalRead(true);
      p.setAverageRating(100f * r.nextFloat());
      photosList.add(p);
      session.save(p);
    }
    tx.commit();

    for (int pageNumber = 0; pageNumber < 10; pageNumber++) {
      Page<PermissibleObject> page = PageHelper.getPage(session, null, Photo.class, null, "averageRating", false, pageNumber, 10);

      List<PermissibleObject> objs = page.getResults();
      for (PermissibleObject obj : objs) {
        System.out.print(obj.getName() + ":" + obj.getAverageRating() + " ");
      }
      System.out.println();
    }

    PageInfo pageInfo = PageHelper.getPageInfo(session, null, Photo.class, null, 10);
    System.out.println("Row Count: " + pageInfo.getTotalRowCount());
    System.out.println("Last Page: " + pageInfo.getLastPageNumber());
   
    tx = session.beginTransaction();
    for (Photo photo : photosList) {
      session.delete(photo);
    }
    tx.commit();
    session.close();
  }

  @BeforeClass
  public static void before() {
    System.out.println("*********** before begin ***********");
    HashMap<String, String> overrides = new HashMap<String, String>();
    overrides.put("showSQL", "true");
    overrides.put("hbm2ddlMode", "update");
    overrides.put("tablePrefix", "test_");
    HibernateUtil.resetHibernate();
    HibernateUtil.getInstance(overrides);
    System.out.println("*********** before end ***********");
  }

  @After
  public void after() {
    System.out.println("*********** after begin ***********");
    HibernateUtil.getInstance().getSessionFactory().close();
    HibernateUtil.resetHibernate();
    System.out.println("*********** after end ***********");
  }

}
TOP

Related Classes of org.damour.base.server.hibernate.GenericPageTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.