/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.gl;
import java.util.HashMap;
import java.util.Map;
import org.apache.ojb.broker.query.Criteria;
import org.kuali.kfs.gl.businessobject.AccountBalance;
import org.kuali.kfs.gl.businessobject.TransientBalanceInquiryAttributes;
import org.kuali.kfs.sys.ConfigureContext;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.KFSPropertyConstants;
import org.kuali.kfs.sys.context.KualiTestBase;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.context.TestUtils;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.service.BusinessObjectService;
/**
* Test coverage of OJBUtility
* @see org.kuali.kfs.gl.OJBUtility
*/
@ConfigureContext
public class OJBUtilityTest extends KualiTestBase {
/**
* test cases for OJBUtility.buildPropertyMap method
* @throws Exception thrown if any exception is encountered for any reason
*/
public void testBuildPropertyMap() throws Exception {
TransientBalanceInquiryAttributes dummyBusinessObject = new TransientBalanceInquiryAttributes();
dummyBusinessObject.setAmountViewOption(Constant.ACCUMULATE);
Map propertyMap = OJBUtility.buildPropertyMap(dummyBusinessObject);
String amountViewOption = (String) propertyMap.get("amountViewOption");
assertEquals(amountViewOption, Constant.ACCUMULATE);
}
/**
* test cases for OJBUtility.buildCriteriaFromMap method
* @throws Exception thrown if any exception is encountered for any reason
*/
public void testBuildCriteriaFromMap() throws Exception {
AccountBalance accountBalance = new AccountBalance();
Map propertyMap1 = new HashMap();
propertyMap1.put("accountNumber", "2004");
propertyMap1.put("chartOfAccountsCode", "");
propertyMap1.put("objectCode", null);
Criteria criteria1 = OJBUtility.buildCriteriaFromMap(propertyMap1, accountBalance);
String criteria1Value = criteria1.toString();
assertTrue(criteria1Value.indexOf("accountNumber") >= 0);
assertTrue(criteria1Value.indexOf("chartOfAccountsCode") < 0);
assertTrue(criteria1Value.indexOf("objectCode") < 0);
accountBalance.setAccountNumber("2004");
accountBalance.setChartOfAccountsCode("");
accountBalance.setObjectCode(null);
// Map propertyMap2 = BusinessObjectHandler.buildPropertyMap(accountBalance);
// Criteria criteria2 = BusinessObjectHandler.buildCriteriaFromMap(propertyMap1, accountBalance);
String criteria2Value = criteria1.toString();
assertTrue(criteria2Value.indexOf("accountNumber") >= 0);
assertTrue(criteria2Value.indexOf("chartOfAccountsCode") < 0);
assertTrue(criteria2Value.indexOf("objectCode") < 0);
assertTrue(criteria2Value.indexOf("subObjectCode") < 0);
}
/**
* Tests the OJBUtility.getResultSizeFromMap method
*
* @throws Exception thrown if any exception is encountered for any reason
*/
public void testGetResultSizeFromMap() throws Exception {
SpringContext.getBean(BusinessObjectService.class).save(buildAccountBalanceFixture());
Map propertyMap = new HashMap();
propertyMap.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, TestUtils.getFiscalYearForTesting().toString());
Long resultSize = OJBUtility.getResultSizeFromMap(propertyMap, new AccountBalance());
assertTrue("Should be greater than 0 if there are account balance records", resultSize.intValue() > 0);
}
/**
* Builds a simple AccountBalance record, so the test doesn't fail
* @return a fake AccountBalance record
*/
private AccountBalance buildAccountBalanceFixture() {
AccountBalance accountBalance = new AccountBalance();
accountBalance.setUniversityFiscalYear(TestUtils.getFiscalYearForTesting());
accountBalance.setChartOfAccountsCode("BL");
accountBalance.setAccountNumber("1031400");
accountBalance.setSubAccountNumber(KFSConstants.getDashSubAccountNumber());
accountBalance.setObjectCode("5000");
accountBalance.setSubObjectCode(KFSConstants.getDashFinancialSubObjectCode());
accountBalance.setAccountLineActualsBalanceAmount(KualiDecimal.ZERO);
accountBalance.setCurrentBudgetLineBalanceAmount(KualiDecimal.ZERO);
accountBalance.setAccountLineEncumbranceBalanceAmount(KualiDecimal.ZERO);
return accountBalance;
}
/**
* Tests the OJBUtility.getResultLimit method
*/
public void testGetResultLimit() {
Integer limit = OJBUtility.getResultLimit();
assertTrue("Should be greater than 0", limit.intValue() == 200);
}
}