/******************************************************************************
* TestDataPreload.java - created by Sakai App Builder -AZ
*
* Copyright (c) 2006 Sakai Project/Sakai Foundation
* Licensed under the Educational Community License version 1.0
*
* A copy of the Educational Community License has been included in this
* distribution and is available at: http://www.opensource.org/licenses/ecl1.php
*
*****************************************************************************/
package org.sakaiproject.hierarchy.impl.test.data;
import java.util.Set;
import java.util.TreeSet;
import org.sakaiproject.genericdao.api.GenericDao;
import org.sakaiproject.hierarchy.dao.model.HierarchyNodeMetaData;
import org.sakaiproject.hierarchy.dao.model.HierarchyNodePermission;
import org.sakaiproject.hierarchy.dao.model.HierarchyPersistentNode;
import org.sakaiproject.hierarchy.impl.utils.HierarchyImplUtils;
import org.sakaiproject.hierarchy.model.HierarchyNode;
/**
* Contains test data for preloading and test constants
* @author Aaron Zeckoski (aaronz@vt.edu)
*/
public class TestDataPreload {
public GenericDao dao;
public void setDao(GenericDao dao) {
this.dao = dao;
}
public void init() {
preloadTestData(dao);
}
/**
* current user, access level user in LOCATION1_ID
*/
public final static String USER_ID = "user-11111111";
public final static String USER_DISPLAY = "Aaron Zeckoski";
/**
* access level user in LOCATION1_ID
*/
public final static String ACCESS_USER_ID = "access-2222222";
public final static String ACCESS_USER_DISPLAY = "Regular User";
/**
* maintain level user in LOCATION1_ID
*/
public final static String MAINT_USER_ID = "maint-33333333";
public final static String MAINT_USER_DISPLAY = "Maint User";
/**
* super admin user
*/
public final static String ADMIN_USER_ID = "admin";
public final static String ADMIN_USER_DISPLAY = "Administrator";
/**
* Invalid user (also can be used to simulate the anonymous user)
*/
public final static String INVALID_USER_ID = "invalid-UUUUUU";
/**
* this permission does not translate
*/
public final static String PERM_TOKEN_1 = "tokenKey1";
/**
* this permission should translate downward
*/
public final static String PERM_TOKEN_2 = "tokenKey2";
public final static String INVALID_PERM_TOKEN = "invalid-permtoken";
/**
* current location
*/
public final static String LOCATION1_ID = "/site/ref-1111111";
public final static String LOCATION1_TITLE = "Location 1 title";
public final static String LOCATION2_ID = "/site/ref-22222222";
public final static String LOCATION2_TITLE = "Location 2 title";
public final static String INVALID_LOCATION_ID = "invalid-LLLLLLLL";
// testing constants
public final static String HIERARCHYA = "hierarchyA";
public final static String HIERARCHYB = "hierarchyB";
public final static String INVALID_HIERARCHY = "hierarchy-invalid";
public final static String INVALID_NODE_ID = "invalid-nodeID";
public final static String PERM_ONE = "permission.one";
public final static String PERM_TWO = "permission.two";
public final static String PERM_THREE = "permission.three";
// testing data objects here
public HierarchyPersistentNode pNode1 = new HierarchyPersistentNode(null, null, toCode("2,3,4"), toCode("2,3,4,5,6,7,8") );
public HierarchyPersistentNode pNode2 = new HierarchyPersistentNode(toCode("1"), toCode("1"), null, null );
public HierarchyPersistentNode pNode3 = new HierarchyPersistentNode(toCode("1"), toCode("1"), toCode("5"), toCode("5") );
public HierarchyPersistentNode pNode4 = new HierarchyPersistentNode(toCode("1"), toCode("1"), toCode("6,7,8"), toCode("6,7,8") );
public HierarchyPersistentNode pNode5 = new HierarchyPersistentNode(toCode("3"), toCode("1,3"), null, null );
public HierarchyPersistentNode pNode6 = new HierarchyPersistentNode(toCode("4"), toCode("1,4"), null, null );
public HierarchyPersistentNode pNode7 = new HierarchyPersistentNode(toCode("4"), toCode("1,4"), null, null );
public HierarchyPersistentNode pNode8 = new HierarchyPersistentNode(toCode("4"), toCode("1,4"), null, null );
public HierarchyPersistentNode pNode9 = new HierarchyPersistentNode(null, null, toCode("10"), toCode("10") );
public HierarchyPersistentNode pNode10 = new HierarchyPersistentNode(toCode("9,11"), toCode("9,11"), null, null );
public HierarchyPersistentNode pNode11 = new HierarchyPersistentNode(null, null, toCode("10"), toCode("10") );
public HierarchyNodeMetaData meta1 = new HierarchyNodeMetaData(pNode1, HIERARCHYA, Boolean.TRUE, USER_ID, "Univ of AZ", null, null, Boolean.FALSE);
public HierarchyNodeMetaData meta2 = new HierarchyNodeMetaData(pNode2, HIERARCHYA, Boolean.FALSE, USER_ID, "College of Engineering", null, PERM_TOKEN_1, Boolean.FALSE);
public HierarchyNodeMetaData meta3 = new HierarchyNodeMetaData(pNode3, HIERARCHYA, Boolean.FALSE, USER_ID, "College of Arts", null, PERM_TOKEN_1, Boolean.FALSE);
public HierarchyNodeMetaData meta4 = new HierarchyNodeMetaData(pNode4, HIERARCHYA, Boolean.FALSE, USER_ID, "College of Science", null, PERM_TOKEN_2, Boolean.FALSE);
public HierarchyNodeMetaData meta5 = new HierarchyNodeMetaData(pNode5, HIERARCHYA, Boolean.FALSE, USER_ID, "Dept of Art", null, PERM_TOKEN_1, Boolean.FALSE);
public HierarchyNodeMetaData meta6 = new HierarchyNodeMetaData(pNode6, HIERARCHYA, Boolean.FALSE, USER_ID, "Dept of Math", null, null, Boolean.FALSE);
public HierarchyNodeMetaData meta7 = new HierarchyNodeMetaData(pNode7, HIERARCHYA, Boolean.FALSE, USER_ID, "Dept of Physics", null, null, Boolean.FALSE);
public HierarchyNodeMetaData meta8 = new HierarchyNodeMetaData(pNode8, HIERARCHYA, Boolean.FALSE, USER_ID, "Dept of Biology", null, null, Boolean.FALSE);
public HierarchyNodeMetaData meta9 = new HierarchyNodeMetaData(pNode9, HIERARCHYB, Boolean.TRUE, USER_ID, "Univ of BZ", null, null, Boolean.FALSE);
public HierarchyNodeMetaData meta10 = new HierarchyNodeMetaData(pNode10, HIERARCHYB, Boolean.FALSE, USER_ID, "College of BZ", null, PERM_TOKEN_1, Boolean.FALSE);
public HierarchyNodeMetaData meta11 = new HierarchyNodeMetaData(pNode11, HIERARCHYB, Boolean.FALSE, USER_ID, "Provost of BZ", null, null, Boolean.FALSE);
public HierarchyNode node1;
public HierarchyNode node2;
public HierarchyNode node3;
public HierarchyNode node4;
public HierarchyNode node5;
public HierarchyNode node6;
public HierarchyNode node7;
public HierarchyNode node8;
public HierarchyNode node9;
public HierarchyNode node10;
public HierarchyNode node11;
public HierarchyNodePermission nodePerm1 ;
public HierarchyNodePermission nodePerm2 ;
public HierarchyNodePermission nodePerm3 ;
public HierarchyNodePermission nodePerm4 ;
public HierarchyNodePermission nodePerm5 ;
public HierarchyNodePermission nodePerm6 ;
public HierarchyNodePermission nodePerm7 ;
public HierarchyNodePermission nodePerm8 ;
public HierarchyNodePermission nodePerm9 ;
public HierarchyNodePermission nodePerm10;
public HierarchyNodePermission nodePerm11;
public HierarchyNodePermission nodePerm12;
public HierarchyNodePermission nodePerm13;
public boolean preloaded = false;
/**
* Preload a bunch of test data into the database
* @param dao a generic dao
*/
public void preloadTestData(GenericDao dao) {
dao.save(pNode1);
dao.save(pNode2);
dao.save(pNode3);
dao.save(pNode4);
dao.save(pNode5);
dao.save(pNode6);
dao.save(pNode7);
dao.save(pNode8);
dao.save(pNode9);
dao.save(pNode10);
dao.save(pNode11);
dao.save(meta1);
dao.save(meta2);
dao.save(meta3);
dao.save(meta4);
dao.save(meta5);
dao.save(meta6);
dao.save(meta7);
dao.save(meta8);
dao.save(meta9);
dao.save(meta10);
dao.save(meta11);
node1 = HierarchyImplUtils.makeNode(pNode1, meta1);
node2 = HierarchyImplUtils.makeNode(pNode2, meta2);
node3 = HierarchyImplUtils.makeNode(pNode3, meta3);
node4 = HierarchyImplUtils.makeNode(pNode4, meta4);
node5 = HierarchyImplUtils.makeNode(pNode5, meta5);
node6 = HierarchyImplUtils.makeNode(pNode6, meta6);
node7 = HierarchyImplUtils.makeNode(pNode7, meta7);
node8 = HierarchyImplUtils.makeNode(pNode8, meta8);
node9 = HierarchyImplUtils.makeNode(pNode9, meta9);
node10 = HierarchyImplUtils.makeNode(pNode10, meta10);
node11 = HierarchyImplUtils.makeNode(pNode11, meta11);
nodePerm1 = new HierarchyNodePermission(MAINT_USER_ID, pNode2.getId().toString(), PERM_ONE);
nodePerm2 = new HierarchyNodePermission(USER_ID, pNode3.getId().toString(), PERM_TWO);
nodePerm3 = new HierarchyNodePermission(MAINT_USER_ID, pNode3.getId().toString(), PERM_TWO);
nodePerm4 = new HierarchyNodePermission(MAINT_USER_ID, pNode4.getId().toString(), PERM_ONE);
nodePerm5 = new HierarchyNodePermission(MAINT_USER_ID, pNode5.getId().toString(), PERM_TWO);
nodePerm6 = new HierarchyNodePermission(ACCESS_USER_ID, pNode5.getId().toString(), PERM_ONE);
nodePerm7 = new HierarchyNodePermission(MAINT_USER_ID, pNode6.getId().toString(), PERM_ONE);
nodePerm8 = new HierarchyNodePermission(USER_ID, pNode6.getId().toString(), PERM_TWO);
nodePerm9 = new HierarchyNodePermission(MAINT_USER_ID, pNode7.getId().toString(), PERM_ONE);
nodePerm10 = new HierarchyNodePermission(ACCESS_USER_ID, pNode7.getId().toString(), PERM_ONE);
nodePerm11 = new HierarchyNodePermission(MAINT_USER_ID, pNode8.getId().toString(), PERM_ONE);
nodePerm12 = new HierarchyNodePermission(ACCESS_USER_ID, pNode8.getId().toString(), PERM_TWO);
nodePerm13 = new HierarchyNodePermission(MAINT_USER_ID, pNode2.getId().toString(), PERM_TWO);
dao.save(nodePerm1);
dao.save(nodePerm2);
dao.save(nodePerm3);
dao.save(nodePerm4);
dao.save(nodePerm5);
dao.save(nodePerm6);
dao.save(nodePerm7);
dao.save(nodePerm8);
dao.save(nodePerm9);
dao.save(nodePerm10);
dao.save(nodePerm11);
dao.save(nodePerm12);
dao.save(nodePerm13);
preloaded = true;
}
/**
* Encode the comma delimited list of nodes
* @param commaDelimitedNums
* @return an encoded string
*/
private String toCode(String commaDelimitedNums) {
Set<String> s = new TreeSet<String>();
if (commaDelimitedNums != null && !commaDelimitedNums.equals("")) {
String[] split = commaDelimitedNums.split(",");
for (int i = 0; i < split.length; i++) {
s.add( split[i] );
}
}
return HierarchyImplUtils.makeEncodedNodeIdString(s);
}
}