/* * 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.module.external.kc.service.impl; import static org.kuali.kfs.sys.fixture.UserNameFixture.khuntley; import java.util.ArrayList; import java.util.List; import org.kuali.kfs.fp.businessobject.FiscalYearFunctionControl; import org.kuali.kfs.fp.document.BudgetAdjustmentDocument; import org.kuali.kfs.fp.service.FiscalYearFunctionControlService; import org.kuali.kfs.integration.cg.dto.BudgetAdjustmentCreationStatusDTO; import org.kuali.kfs.integration.cg.dto.BudgetAdjustmentParametersDTO; import org.kuali.kfs.module.external.kc.KcConstants; import org.kuali.kfs.module.external.kc.fixture.BudgetAdjustmentParameterDTOFixture; import org.kuali.kfs.module.external.kc.fixture.BudgetAdjustmentParameterDTOLineFixture; import org.kuali.kfs.module.external.kc.service.BudgetAdjustmentService; import org.kuali.kfs.module.external.kc.service.BudgetAdjustmentServiceTest; import org.kuali.kfs.sys.ConfigureContext; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.kfs.sys.context.TestUtils; import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.krad.service.BusinessObjectService; @ConfigureContext(session = khuntley) public class BudgetAdjustmentServiceImplTest extends BudgetAdjustmentServiceTest { private BudgetAdjustmentService budgetAdjustmentService; private DateTimeService dateTimeService; private Integer fiscalYear; @Override protected void setUp() throws Exception { super.setUp(); // Initialize service objects. // budgetAdjustmentDocument.getDocumentHeader().setDocumentNumber(parameters.getDocumentNumber()); budgetAdjustmentService = SpringContext.getBean(BudgetAdjustmentService.class); // Initialize objects. FiscalYearFunctionControlService fiscalYearFunctionControlService = SpringContext.getBean(FiscalYearFunctionControlService.class); System.out.println("BA Allowed Years: " + fiscalYearFunctionControlService.getBudgetAdjustmentAllowedYears()); fiscalYear = TestUtils.getFiscalYearForTesting(); System.out.println("Testing FY: " + fiscalYear); // ensure we have an active BA document for the given year FiscalYearFunctionControl fyfc = new FiscalYearFunctionControl(); fyfc.setUniversityFiscalYear(fiscalYear); fyfc.setFinancialSystemFunctionControlCode("BAACTV"); FiscalYearFunctionControl existingFyfc = (FiscalYearFunctionControl) SpringContext.getBean(BusinessObjectService.class).retrieve(fyfc); if (existingFyfc != null) { fyfc = existingFyfc; fyfc.setFinancialSystemFunctionActiveIndicator(true); } // SpringContext.getBean(BusinessObjectService.class).save(fyfc); System.out.println("BA Allowed Years (after update): " + fiscalYearFunctionControlService.getBudgetAdjustmentAllowedYears()); } /** * This method will create AccountsParameters with test values... * * @return accountParameters */ public List<BudgetAdjustmentParametersDTO> getBudgetAdjustmentParameters() { List<BudgetAdjustmentParametersDTO> list = new ArrayList(); /* BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO1 = BudgetAdjustmentParameterDTOFixture.CONTROL_1.createBudgetAdjustmentParameters(); budgetAdjustmentParametersDTO1.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_F_LINE1.createBudgetAdjustmentParameterDTO()); //budgetAdjustmentParametersDTO1.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_T_LINE1.createBudgetAdjustmentParameterDTO()); list.add(budgetAdjustmentParametersDTO1); BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO2 = BudgetAdjustmentParameterDTOFixture.CONTROL_2.createBudgetAdjustmentParameters(); budgetAdjustmentParametersDTO2.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_F_LINE2.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO2.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_T_LINE2.createBudgetAdjustmentParameterDTO()); list.add(budgetAdjustmentParametersDTO2); */ TestUtils.setSystemParameter(BudgetAdjustmentDocument.class, KcConstants.BudgetAdjustmentService.PARAMETER_INCOME_OBJECT_CODES_BY_SPONSOR_TYPE, BudgetAdjustmentParameterDTOFixture.CONTROL_3.getSystemParameterResearchSponsorType()); BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO = BudgetAdjustmentParameterDTOFixture.CONTROL_3.createBudgetAdjustmentParameters(); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE1.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE2.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE3.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE4.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE5.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE6.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE7.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE8.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE9.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE10.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE11.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE12.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE13.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE14.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE15.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE16.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE17.createBudgetAdjustmentParameterDTO()); budgetAdjustmentParametersDTO.getDetails().add(BudgetAdjustmentParameterDTOLineFixture.DETAIL_LINE18.createBudgetAdjustmentParameterDTO()); list.add(budgetAdjustmentParametersDTO); return list; } /** * This method tests the service locally */ public void testBudgetAdjustmentServiceSave() { List<BudgetAdjustmentParametersDTO> budgetAdjustmentParametersDTOs = getBudgetAdjustmentParameters(); // set the ACCOUNT_AUTO_CREATE_ROUTE as "save" TestUtils.setSystemParameter(BudgetAdjustmentDocument.class, KcConstants.BudgetAdjustmentService.PARAMETER_KC_ADMIN_AUTO_BA_DOCUMENT_WORKFLOW_ROUTE, KFSConstants.WORKFLOW_DOCUMENT_SAVE); // for (BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO : budgetAdjustmentParametersDTOs) { BudgetAdjustmentCreationStatusDTO status = budgetAdjustmentService.createBudgetAdjustment(budgetAdjustmentParametersDTO); assertTrue("Errors during service call - save only: " + status.getErrorMessages(), status.getErrorMessages().isEmpty()); } } @ConfigureContext(session = khuntley, shouldCommitTransactions = false) public void testBudgetAdjustmentServiceRoute() throws Exception { List<BudgetAdjustmentParametersDTO> budgetAdjustmentParametersDTOs = getBudgetAdjustmentParameters(); // //set the ACCOUNT_AUTO_CREATE_ROUTE as "route" TestUtils.setSystemParameter(BudgetAdjustmentDocument.class, KcConstants.BudgetAdjustmentService.PARAMETER_KC_ADMIN_AUTO_BA_DOCUMENT_WORKFLOW_ROUTE, "Submit"); // the document should be submitted.... for (BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO : budgetAdjustmentParametersDTOs) { BudgetAdjustmentCreationStatusDTO status = budgetAdjustmentService.createBudgetAdjustment(budgetAdjustmentParametersDTO); assertTrue("Errors during service call - route: " + status.getErrorMessages(), status.getErrorMessages().isEmpty()); } } @ConfigureContext(session = khuntley, shouldCommitTransactions = false) public void testBudgetAdjustmentServiceBlanket() { List<BudgetAdjustmentParametersDTO> budgetAdjustmentParametersDTOs = getBudgetAdjustmentParameters(); TestUtils.setSystemParameter(BudgetAdjustmentDocument.class, KcConstants.BudgetAdjustmentService.PARAMETER_KC_ADMIN_AUTO_BA_DOCUMENT_WORKFLOW_ROUTE, KFSConstants.WORKFLOW_DOCUMENT_BLANKET_APPROVE); // // the document should be blanket approved..... for (BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO : budgetAdjustmentParametersDTOs) { BudgetAdjustmentCreationStatusDTO status = budgetAdjustmentService.createBudgetAdjustment(budgetAdjustmentParametersDTO); assertTrue("Errors during service call -blanketroute: " + status.getErrorMessages(), status.getErrorMessages().isEmpty()); } } public void testBudgetAdjustmentServiceFail() { List<BudgetAdjustmentParametersDTO> budgetAdjustmentParametersDTOs = getBudgetAdjustmentParameters(); // GlobalVariables.setUserSession(new // UserSession(SpringContext.getBean(IdentityManagementService.class).getPrincipal(budgetAdjustmentParametersDTO.getPrincipalId()).getPrincipalName())); // org.kuali.rice.krad.UserSession.setAuthenticatedUser(new // org.kuali.rice.krad.UserSession(budgetAdjustmentParametersDTO.getPrincipalId())); // TestUtils.setSystemParameter(BudgetAdjustmentDocument.class, KcConstants.BudgetAdjustmentService.PARAMETER_KC_ADMIN_AUTO_BA_DOCUMENT_WORKFLOW_ROUTE, "I"); // // // the document should be submitted.... for (BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO : budgetAdjustmentParametersDTOs) { BudgetAdjustmentCreationStatusDTO status = budgetAdjustmentService.createBudgetAdjustment(budgetAdjustmentParametersDTO); // // //we want to test for failure of the routing by using routing value not defined for the system parameter... assertFalse("Service call should have failed.", status.getErrorMessages().isEmpty()); } } /** * This method tests budgetAdjustmentSourceAccountingLine.the service using KSB, but locally */ // public void NORUN_testBudgetAdjustmentServiceWithKSB() { // BudgetAdjustmentParametersDTO budgetAdjustmentParametersDTO = getBudgetAdjustmentParameters(); // // try { // // BudgetAdjustmentService budgetAdjustService = (BudgetAdjustmentService) GlobalResourceLoader.getService(new // QName(KFSConstants.Reserch.KC_NAMESPACE_URI, KFSConstants.Reserch.KC_UNIT_SERVICE)); // // // URL url = new URL("http://localhost:8080/remoting/budgetAdjustmentServiceSOAP"); // QName qName = new QName("KFS", "budgetAdjustmentServiceSoap"); // // Service service = Service.create(url, qName); // BudgetAdjustmentService budgetAdjustService = (BudgetAdjustmentService) service.getPort(BudgetAdjustmentService.class); // BudgetAdjustmentCreationStatusDTO creationStatus = budgetAdjustService.createBudgetAdjustment(budgetAdjustmentParametersDTO); // // System.out.println("doc number: " + creationStatus.getDocumentNumber()); // assertTrue(creationStatus.getStatus().equals("success")); // // } catch (Exception e) { // System.out.println("error: " + e.getMessage()); // } // // } }