Package org.damour.base.server.hibernate

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

package org.damour.base.server.hibernate;

import org.damour.base.client.objects.File;
import org.damour.base.client.objects.GroupMembership;
import org.damour.base.client.objects.PermissibleObject;
import org.damour.base.client.objects.Permission;
import org.damour.base.client.objects.RepositoryTreeNode;
import org.damour.base.client.objects.User;
import org.damour.base.client.objects.UserGroup;
import org.damour.base.server.hibernate.helpers.RepositoryHelper;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.After;
import org.junit.Test;

public class RepositoryTest {

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

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

    // create 100 files which have global read = true
    for (int i = 0; i < 1; i++) {
      PermissibleObject parent = new PermissibleObject();
      parent.setName("globalRead:true " + i);
      parent.setOwner(user);
      parent.setGlobalRead(true);
      session.save(parent);

      for (int k = 0; k < 5; k++) {
        PermissibleObject folder = new PermissibleObject();
        folder.setName("globalRead:true " + i);
        folder.setOwner(user);
        folder.setGlobalRead(true);
        folder.setParent(parent);
        session.save(folder);

        for (int z = 0; z < 5; z++) {
          File file = new File();
          file.setName("globalRead:true " + z);
          file.setOwner(user);
          file.setGlobalRead(true);
          file.setParent(folder);
          session.save(file);
        }
      }
    }

    User user2 = new User();
    user2.setUsername("nobody");
    session.save(user2);

    for (int j = 0; j < 1; j++) {
      File file = new File();
      file.setName("HAS PERM " + j);
      file.setOwner(user);
      session.save(file);

      Permission perm = new Permission();
      perm.readPerm = true;
      perm.setSecurityPrincipal(user2);
      perm.setPermissibleObject(file);
      session.save(perm);
    }

    for (int j = 0; j < 1; j++) {
      PermissibleObject folder = new PermissibleObject();
      folder.setName("HAS PERM " + j);
      folder.setOwner(user);
      session.save(folder);

      Permission perm = new Permission();
      perm.readPerm = true;
      perm.setSecurityPrincipal(user2);
      perm.setPermissibleObject(folder);
      session.save(perm);
    }

    for (int j = 0; j < 1; j++) {
      PermissibleObject folder = new PermissibleObject();
      folder.setName("user owns, but does not have perm");
      folder.setOwner(user2);
      session.save(folder);

      Permission perm = new Permission();
      perm.setReadPerm(true);
      perm.setSecurityPrincipal(user);
      perm.setPermissibleObject(folder);
      session.save(perm);
    }   

    UserGroup group = new UserGroup();
    group.setName("blah");
    session.save(group);
    GroupMembership membership = new GroupMembership();
    membership.setUser(user2);
    membership.setUserGroup(group);
    session.save(membership);
   
    File groupPermFile = new File();
    groupPermFile.setName("not owner:  group perm file");
    groupPermFile.setOwner(user);
    session.save(groupPermFile);

    Permission perm = new Permission();
    perm.setReadPerm(true);
    perm.setSecurityPrincipal(group);
    perm.setPermissibleObject(groupPermFile);
    session.save(perm);
   
    tx.commit();
    session.close();

    for (int i = 0; i < 5; i++) {
      System.out.println("Starting dump");
      session = HibernateUtil.getInstance().getSession();
      // as user, get files i can see
      RepositoryTreeNode root = new RepositoryTreeNode();
      RepositoryHelper.buildRepositoryTreeNode(session, user2, root, null);
      RepositoryHelper.dumpTreeNode(root, 0);
      session.close();
      System.out.println("End dump");
    }

  }

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

}
TOP

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

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.