001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.opensource.org/licenses/ecl1.php
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.kuali.kfs.batch;
017:
018: import java.io.File;
019: import java.util.ArrayList;
020:
021: import org.kuali.core.bo.user.UniversalUser;
022: import org.kuali.core.service.UniversalUserService;
023: import org.kuali.kfs.context.KualiTestBase;
024: import org.kuali.kfs.context.SpringContext;
025: import org.kuali.module.financial.batch.pcard.ProcurementCardInputFileType;
026: import org.kuali.module.gl.batch.collector.CollectorBatch;
027: import org.kuali.module.gl.batch.collector.CollectorInputFileType;
028: import org.kuali.test.ConfigureContext;
029: import org.kuali.test.KualiTestConstants.TestConstants.Data4;
030:
031: /**
032: * Tests the collector and pcdo instances of BatchInputFileType.
033: *
034: * @see org.kuali.kfs.batch.BatchInputFileType
035: */
036: @ConfigureContext
037: public class BatchInputFileTypeTest extends KualiTestBase {
038: private static final String TEST_BATCH_XML_DIRECTORY = "org/kuali/kfs/batch/xml/";
039:
040: private BatchInputFileType pcdoBatchInputFileType;
041: private BatchInputFileType collectorBatchInputFileType;
042:
043: /**
044: * @see junit.framework.TestCase#setUp()
045: */
046: @Override
047: protected void setUp() throws Exception {
048: super .setUp();
049:
050: pcdoBatchInputFileType = SpringContext
051: .getBean(ProcurementCardInputFileType.class);
052: collectorBatchInputFileType = SpringContext
053: .getBean(CollectorInputFileType.class);
054: }
055:
056: /**
057: * Verifies the directories specified by the batch input types do exist on the local file system.
058: */
059: public final void testDirectoryName() throws Exception {
060: File pcdoDirectory = new File(pcdoBatchInputFileType
061: .getDirectoryPath());
062: assertTrue("pcdo directory "
063: + pcdoBatchInputFileType.getDirectoryPath()
064: + " does not exist on local file system", pcdoDirectory
065: .exists());
066:
067: File collectorDirectory = new File(collectorBatchInputFileType
068: .getDirectoryPath());
069: assertTrue("collector directory "
070: + collectorBatchInputFileType.getDirectoryPath()
071: + " does not exist on local file system",
072: collectorDirectory.exists());
073: }
074:
075: /**
076: * Assures any workgroup user is granted permission for a pcdo file.
077: */
078: public final void testCheckAuthorization_pcdo() throws Exception {
079: Object parsedContents = new ArrayList();
080: UniversalUser createUser = SpringContext.getBean(
081: UniversalUserService.class)
082: .getUniversalUserByAuthenticationUserId(Data4.USER_ID2);
083: UniversalUser nonCreateUser = SpringContext.getBean(
084: UniversalUserService.class)
085: .getUniversalUserByAuthenticationUserId(Data4.USER_ID1);
086:
087: String saveFileName = pcdoBatchInputFileType.getFileName(
088: createUser, parsedContents, "testFile.xml");
089: File batchFile = new File(saveFileName);
090:
091: assertTrue(
092: "user who created batch file does not have file authorization",
093: pcdoBatchInputFileType.checkAuthorization(createUser,
094: batchFile));
095: assertTrue("other user does not have file authorization",
096: pcdoBatchInputFileType.checkAuthorization(
097: nonCreateUser, batchFile));
098: }
099:
100: /**
101: * Assures that only the user who created the collector file is granted permission to manage.
102: */
103: public final void testCheckAuthorization_collector()
104: throws Exception {
105: Object parsedContents = new CollectorBatch();
106: UniversalUser createUser = SpringContext.getBean(
107: UniversalUserService.class)
108: .getUniversalUserByAuthenticationUserId(Data4.USER_ID2);
109: UniversalUser nonCreateUser = SpringContext.getBean(
110: UniversalUserService.class)
111: .getUniversalUserByAuthenticationUserId(Data4.USER_ID1);
112:
113: String saveFileName = collectorBatchInputFileType.getFileName(
114: createUser, parsedContents, "testFile.xml");
115: File batchFile = new File(saveFileName);
116:
117: assertTrue(
118: "user who created batch file does not have file authorization",
119: collectorBatchInputFileType.checkAuthorization(
120: createUser, batchFile));
121: assertFalse(
122: "user who did not create batch file has authorization",
123: collectorBatchInputFileType.checkAuthorization(
124: nonCreateUser, batchFile));
125: }
126:
127: }
|