Package org.damour.base.server.hibernate

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

package org.damour.base.server.hibernate;

import java.util.HashMap;
import java.util.List;

import org.damour.base.client.objects.PermissibleObject;
import org.damour.base.client.objects.Tag;
import org.damour.base.client.objects.TagMembership;
import org.damour.base.server.hibernate.helpers.TagHelper;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class TagTest {

  public Tag createTag(String name, String desc, Tag parent) {
    Tag tag = new Tag();
    tag.setName(name);
    tag.setDescription(desc);
    tag.setParentTag(parent);
    return tag;
  }

  @Test
  public void createTagTest() {
    Session session = HibernateUtil.getInstance().getSession();
    Transaction tx = session.beginTransaction();

    Tag cat = createTag("catName1", "desc1", null);
    Tag cat2 = createTag("catName2", "desc2", cat);

    session.save(cat);
    session.save(cat2);

    tx.commit();
    session.close();
  }

  @Test
  public void createTagMembership() {
    Session session = HibernateUtil.getInstance().getSession();
    Transaction tx = session.beginTransaction();

    List<Tag> tags = TagHelper.getTags(session);
    for (Tag tag : tags) {
      TagMembership tagMem = new TagMembership();
      tagMem.setTag(tag);
      PermissibleObject obj = new PermissibleObject();
      obj.setName("tagMembership aware");
      session.save(obj);
      tagMem.setPermissibleObject(obj);
      session.save(tagMem);
      System.out.println(tag.getName());
    }

    tx.commit();
    session.close();
  }

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

    List<Tag> tags = TagHelper.getTags(session);
    for (Tag tag : tags) {
      Transaction tx = session.beginTransaction();
      TagMembership tagMem = new TagMembership();
      tagMem.setTag(tag);
      PermissibleObject obj = new PermissibleObject();
      obj.setName("tagMembership aware");
      session.save(obj);
      tagMem.setPermissibleObject(obj);
      session.save(tagMem);
      tx.commit();

      tx = session.beginTransaction();
      session.delete(tagMem);
      tx.commit();
    }

    session.close();
  }

  @Test
  public void deleteTag() {
    Session session = HibernateUtil.getInstance().getSession();
    Transaction tx = session.beginTransaction();

    Tag tag = createTag("to-be-deleted-parent", "desc1", null);
    Tag tag2 = createTag("to-be-deleted-child", "desc2", tag);

    TagMembership tagMem = new TagMembership();
    tagMem.setTag(tag);
    PermissibleObject obj = new PermissibleObject();
    obj.setName("tags for this should not exist");
    session.save(obj);
    tagMem.setPermissibleObject(obj);
    session.save(tagMem);
    session.save(tag);
    session.save(tag2);

    tx.commit();

    tx = session.beginTransaction();
    TagHelper.deleteTag(session, tag);
    tx.commit();

    session.close();

  }

  @BeforeClass
  public static void before() {
    HashMap<String, String> overrides = new HashMap<String, String>();
    overrides.put("showSQL", "true");
    overrides.put("hbm2ddlMode", "create-drop");
    overrides.put("tablePrefix", "test_");
    HibernateUtil.resetHibernate();
    HibernateUtil.getInstance(overrides);
  }

  @AfterClass
  public static 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.TagTest

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.