001: package edu.iu.uis.eden.workgroup;
002:
003: import java.sql.Connection;
004: import java.sql.PreparedStatement;
005: import java.util.ArrayList;
006: import java.util.Collection;
007: import java.util.List;
008:
009: import junit.framework.TestCase;
010:
011: import org.apache.ojb.broker.PersistenceBroker;
012:
013: import edu.iu.uis.eden.SpringServiceLocator;
014: import edu.iu.uis.eden.util.BrokerUtil;
015:
016: public class TestIUWorkgroupService extends TestCase {
017:
018: //Constants to set up test records. Add to the array if more records are
019: // needed.
020: private static final Long[] WORKGROUP_IDS = { new Long(0),
021: new Long(1), new Long(2) };
022:
023: private static final Integer[] WORKGROUP_VER_NBRS = {
024: new Integer(0), new Integer(1), new Integer(2) };
025:
026: private static final Long[] RIDS = { new Long(0), new Long(1),
027: new Long(2) };
028:
029: /*private static final String[] ORG_CDS = { "ORG0", "ORG1", "ORG2" };
030:
031: private static final String[] FIN_COA_CDS = { "C0", "C1", "C2" };
032: */
033: private static final String[] WRKGRP_NMS = { "WORKGROUP1",
034: "WORKGROUP1", "WORKGROUP2" };
035:
036: private static final Boolean[] WRKGRP_ACTV_IND = {
037: new Boolean(true), new Boolean(false), new Boolean(true) };
038:
039: private static final String[] WRKGRP_TYP_CDS = { "F", "X", "F" };
040:
041: private static final String[] EMPL_IDS = { "0000000000",
042: "1000000000", "2000000000" };
043:
044: private static final Boolean[] WORKGROUP_CUR_INDS = {
045: new Boolean(true), new Boolean(true), new Boolean(true) };
046:
047: IUWorkgroupService workgroupService;
048:
049: WorkgroupMemberService workgroupMemberService;
050:
051: IUWorkgroupImpl workgroup0, workgroup1, workgroup2, workgroupFound;
052:
053: WorkgroupMember member1, member2, member3;
054:
055: List members, groupsFound;
056:
057: protected void setUp() throws Exception {
058: SpringServiceLocator.setToTestMode(null);
059: workgroupService = (IUWorkgroupService) SpringServiceLocator
060: .getService(SpringServiceLocator.WORKGROUP_SRV);
061:
062: workgroupMemberService = (WorkgroupMemberService) SpringServiceLocator
063: .getService(SpringServiceLocator.WORKGROUP_MEMBER_SRV);
064:
065: //workgroup with no members
066: workgroup0 = new IUWorkgroupImpl();
067: setWorkgroup(workgroup0, 0);
068: workgroup0.setMembers(new ArrayList());
069: workgroupService.save(workgroup0);
070:
071: //workgroup with 1 member
072: workgroup1 = new IUWorkgroupImpl();
073: setWorkgroup(workgroup1, 1);
074:
075: member1 = new WorkgroupMember();
076: member1.setWorkgroupId(WORKGROUP_IDS[1]);
077: member1.setWorkflowId(EMPL_IDS[1]);
078: member1.setWorkgroupVerNbr(WORKGROUP_VER_NBRS[1]);
079: members = new ArrayList();
080: members.add(member1);
081: workgroup1.setMembers(members);
082: workgroupService.save(workgroup1);
083:
084: //workgroup with 2 members
085: workgroup2 = new IUWorkgroupImpl();
086: setWorkgroup(workgroup2, 2);
087:
088: member2 = new WorkgroupMember();
089: member2.setWorkgroupId(WORKGROUP_IDS[2]);
090: member2.setWorkflowId(EMPL_IDS[1]);
091: member2.setWorkgroupVerNbr(WORKGROUP_VER_NBRS[2]);
092: member3 = new WorkgroupMember();
093: member3.setWorkgroupId(WORKGROUP_IDS[2]);
094: member3.setWorkflowId(EMPL_IDS[2]);
095: member3.setWorkgroupVerNbr(WORKGROUP_VER_NBRS[2]);
096: members = new ArrayList();
097: members.add(member2);
098: members.add(member3);
099: workgroup2.setMembers(members);
100: workgroupService.save(workgroup2);
101: }
102:
103: private void setWorkgroup(IUWorkgroupImpl workgroup, int index) {
104: workgroup.setWorkgroupId(WORKGROUP_IDS[index]);
105: /* workgroup.setOrgCd(ORG_CDS[index]);
106: workgroup.setFinCoaCd(FIN_COA_CDS[index]);*/
107: workgroup.setRouteHeaderId(RIDS[index]);
108: workgroup.setWorkgroupCurInd(WORKGROUP_CUR_INDS[index]);
109: workgroup.setWorkgroupName(WRKGRP_NMS[index]);
110: workgroup.setActiveInd(WRKGRP_ACTV_IND[index]);
111: //workgroup.setWorkgroupType(WRKGRP_TYP_CDS[index]);
112: workgroup.setWorkgroupVerNbr(WORKGROUP_VER_NBRS[index]);
113: }
114:
115: protected void tearDown() throws Exception {
116: try {
117: workgroupService.delete(workgroup0);
118: workgroupService.delete(workgroup1);
119: workgroupService.delete(workgroup2);
120: } catch (Exception e) {
121: System.out
122: .println("tearDown() caught exception, manually cleaning up db records ...");
123: PersistenceBroker broker = BrokerUtil
124: .getPersistenceBroker(BrokerUtil.EDEN_CONNECTION_KEY);
125: Connection conn = broker.serviceConnectionManager()
126: .getConnection();
127: PreparedStatement ps = conn
128: .prepareStatement("delete from en_wrkgrp_t where wrkgrp_id < 1003 and wrkgrp_ver_nbr < "
129: + WORKGROUP_VER_NBRS[2]);
130: ps.execute();
131: ps = conn
132: .prepareStatement("delete from en_wrkgrp_mbr_t where wrkgrp_id < 1003 and wrkgrp_ver_nbr < "
133: + WORKGROUP_VER_NBRS[2]);
134: ps.execute();
135: conn.close();
136: //test is bad throw the exception.
137: throw e;
138: }
139: }
140:
141: // public void testFindByUser() {
142: // UserService userService = (UserService)SpringServiceLocator.getService(SpringServiceLocator.USER_SERVICE);
143: //
144: // groupsFound = workgroupService.findByUser(userService.getWorkflowUser(new IUUserId(IUUserId.EMPLID,EMPL_IDS[1])));
145: // assertEquals(
146: // "Workgroup service doesn't find correct number of workgroups for user "
147: // + EMPL_IDS[1], 2, groupsFound.size());
148: //
149: // }
150: //
151: // public void testFindByFullName() {
152: // String fullName = FIN_COA_CDS[0] + "." + ORG_CDS[0] + "."
153: // + WRKGRP_NMS[0];
154: // workgroupFound = workgroupService.findByFullName(fullName);
155: // assertTrue(workgroupFound != null);
156: // assertEquals("Workgroup service doesn't find workgroup with full name "
157: // + fullName, WRKGRP_NMS[0], workgroupFound.getWorkgroupName());
158: // }
159:
160: public void testNarrowingFind() throws Exception {
161: Collection groupsFound = workgroupService.search(workgroup1,
162: true);
163: assertEquals(1, groupsFound.size());
164: assertEquals(
165: "Workgroup service narrowingFind() doesn't find workgroup "
166: + workgroup1.getWorkgroupId().toString(),
167: WORKGROUP_IDS[1], ((IUWorkgroupImpl) groupsFound
168: .iterator().next()).getWorkgroupId());
169:
170: IUWorkgroupImpl workgroup = new IUWorkgroupImpl();
171: String fin_coa_cd = "C";
172: //workgroup.setFinCoaCd(fin_coa_cd);
173: groupsFound = workgroupService.search(workgroup, true);
174:
175: //expect to find all three groups
176: assertEquals(
177: "Workgroup service narrowingFind doesn't find workgroup with Fin_Coa_Cd like "
178: + fin_coa_cd, 3, groupsFound.size());
179: }
180:
181: public void testFindByWorkgroupId() {
182: Collection groupsFound = workgroupMemberService
183: .findByWorkgroupId(WORKGROUP_IDS[0]);
184: assertEquals(
185: "WorkgroupMemberService doesn't find workgroup with no members and with workgroupId "
186: + WORKGROUP_IDS[0], 0, groupsFound.size());
187:
188: groupsFound = workgroupMemberService
189: .findByWorkgroupId(WORKGROUP_IDS[1]);
190: assertEquals(
191: "WorkgroupMemberService doesn't find members in workgroup "
192: + WORKGROUP_IDS[1], 1, groupsFound.size());
193:
194: groupsFound = workgroupMemberService
195: .findByWorkgroupId(WORKGROUP_IDS[2]);
196: assertEquals(
197: "WorkgroupMemberService doesn't find members in workgroup "
198: + WORKGROUP_IDS[2], 2, groupsFound.size());
199: }
200: }
|