/*
* 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.batch.service;
import java.util.Map;
import org.kuali.kfs.coa.businessobject.ObjectCode;
import org.kuali.kfs.coa.service.ObjectCodeService;
import org.kuali.kfs.coa.service.OrganizationReversionService;
import org.kuali.kfs.sys.ConfigureContext;
import org.kuali.kfs.sys.context.KualiTestBase;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.context.TestUtils;
/**
* A test to make sure that canonical object codes are put into the correct Organization Reversion categories
*/
@ConfigureContext
public class OrganizationReversionCategoryTest extends KualiTestBase {
private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OrganizationReversionCategoryTest.class);
private OrganizationReversionService organizationReversionService;
private Map<String, OrganizationReversionCategoryLogic> categories;
private ObjectCodeService objectCodeService;
/**
* Sets up services and initializes the categories for this test.
* @see junit.framework.TestCase#setUp()
*/
@Override
public void setUp() throws Exception {
super.setUp();
organizationReversionService = SpringContext.getBean(OrganizationReversionService.class,"organizationReversionService");
categories = organizationReversionService.getCategories();
objectCodeService = SpringContext.getBean(ObjectCodeService.class);
}
/**
* Tests that C01 (Org. Wages) category accepts the right object codes
*/
public void testC01Reversion() {
String category = "C01";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not wages", cat.containsObjectCode(se));
ObjectCode wages = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "3854");
assertNotNull("Wages Object code should exist", wages);
assertTrue("Wages object is wages", cat.containsObjectCode(wages));
}
/**
* Tests that C02 (Salary & Fringes) Category accepts the right object codes
*/
public void testC02Reversion() {
String category = "C02";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not salary/fringes", cat.containsObjectCode(se));
ObjectCode wages = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "3854");
assertNotNull("Wages Object code should exist", wages);
assertFalse("Wages object is not salary/fringes", cat.containsObjectCode(wages));
ObjectCode sal = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "2000");
assertNotNull("Salary Object code should exist", sal);
assertTrue("Wages object is salary/fringes", cat.containsObjectCode(sal));
}
/**
* Tests that C03 (Financial Aid) Category accepts the right object codes
*/
public void testC03Reversion() {
String category = "C03";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not financial aid", cat.containsObjectCode(se));
ObjectCode fr = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5885");
assertNotNull("Fee Remission Object code should exist", fr);
assertTrue("Fee Remission object is financial aid", cat.containsObjectCode(fr));
}
/**
* Tests that C04 (Capital Equip) Category accepts the right object codes
*/
public void testC04Reversion() {
String category = "C04";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not capital equipment", cat.containsObjectCode(se));
ObjectCode ce = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "7677");
assertNotNull("Capital Equip Object code should exist", ce);
assertTrue("Art object is capital equipment", cat.containsObjectCode(ce));
}
/**
* Tests that C05 (Reserve) Category accepts the right object codes
*/
public void testC05Reversion() {
String category = "C05";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not reserve", cat.containsObjectCode(se));
// TODO True test
}
/**
* Tests that C06 (Transfer Out) Category accepts the right object codes
*/
public void testC06Reversion() {
String category = "C06";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not transfer out", cat.containsObjectCode(se));
// TODO True test
}
/**
* Tests that C07 (Transfer In) Category accepts the right object codes
*/
public void testC07Reversion() {
String category = "C07";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not transfer in", cat.containsObjectCode(se));
// TODO True test
}
/**
* Tests that C08 (Travel) Category accepts the right object codes
*/
public void testC08Reversion() {
String category = "C08";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not travel", cat.containsObjectCode(se));
// TODO True test
}
/**
* Tests that C09 (Other Expenses) Category accepts the right object codes
*/
public void testC09Reversion() {
String category = "C09";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertTrue("S&E is S&E", cat.containsObjectCode(se));
// TODO False test
}
/**
* Tests that C10 (Assess Expend) Category accepts the right object codes
*/
public void testC10Reversion() {
String category = "C10";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not asses expend", cat.containsObjectCode(se));
// TODO True test
}
/**
* Tests that C11 (Revenue) Category accepts the right object codes
*/
public void testC11Reversion() {
String category = "C11";
OrganizationReversionCategoryLogic cat = (OrganizationReversionCategoryLogic) categories.get(category);
assertNotNull("Category not found", cat);
ObjectCode se = objectCodeService.getByPrimaryId(TestUtils.getFiscalYearForTesting(), "BL", "5000");
assertNotNull("S&E Object code should exist", se);
assertFalse("S&E is not revenue", cat.containsObjectCode(se));
// TODO True test
}
}