/* * 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.cam.document.service; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.time.DateUtils; import org.kuali.kfs.module.cam.businessobject.Asset; import org.kuali.kfs.module.cam.businessobject.AssetRetirementGlobal; import org.kuali.kfs.module.cam.businessobject.AssetRetirementGlobalDetail; import org.kuali.kfs.module.cam.document.service.impl.AssetServiceImpl; import org.kuali.kfs.module.cam.document.service.impl.RetirementInfoServiceImpl; import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader; import org.kuali.kfs.sys.context.KualiTestBase; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.coreservice.impl.parameter.ParameterServiceImpl; public class RetirementInfoServiceTest extends KualiTestBase { private RetirementInfoServiceImpl retirementInfoService; private DateTimeService dateTimeService; private Asset asset; @Override protected void setUp() throws Exception { super.setUp(); dateTimeService = SpringContext.getBean(DateTimeService.class); this.retirementInfoService = new RetirementInfoServiceImpl(); this.retirementInfoService.setParameterService(createParameterService()); AssetServiceImpl assetServiceImpl = new AssetServiceImpl(); assetServiceImpl.setParameterService(createParameterService()); this.retirementInfoService.setAssetService(assetServiceImpl); this.asset = new Asset(); this.asset.setInventoryStatusCode("R"); } private ParameterServiceImpl createParameterService() { return new ParameterServiceImpl() { @Override public List<String> getParameterValuesAsString(Class componentClass, String parameterName) { List<String> values = new ArrayList<String>(); values.add("O"); values.add("R"); values.add("E"); return values; } }; } private AssetRetirementGlobalDetail createRetirementDetail(String docNumber, int daysToAdd, String docStatus) { AssetRetirementGlobalDetail globalDetail = new AssetRetirementGlobalDetail(); globalDetail.setDocumentNumber(docNumber); AssetRetirementGlobal retirementGlobal = new AssetRetirementGlobal() { @Override public void refreshReferenceObject(String referenceObjectName) { } }; retirementGlobal.setRetirementDate(new java.sql.Date(DateUtils.addDays(dateTimeService.getCurrentDate(), daysToAdd).getTime())); FinancialSystemDocumentHeader header = new FinancialSystemDocumentHeader(); header.setFinancialDocumentStatusCode(docStatus); retirementGlobal.setDocumentHeader(header); globalDetail.setAssetRetirementGlobal(retirementGlobal); return globalDetail; } public void testRetirementInfoService() throws Exception { this.asset.getAssetRetirementHistory().add(createRetirementDetail("12345", 0, "A")); this.asset.getAssetRetirementHistory().add(createRetirementDetail("123457", 1, "A")); this.retirementInfoService.setRetirementInfo(this.asset); assertNotNull(this.asset.getRetirementInfo()); assertEquals("123457", this.asset.getRetirementInfo().getDocumentNumber()); } public void testRetirementInfoService_Disapproved() throws Exception { this.asset.getAssetRetirementHistory().add(createRetirementDetail("12345", 0, "A")); this.asset.getAssetRetirementHistory().add(createRetirementDetail("123457", 1, "D")); this.retirementInfoService.setRetirementInfo(this.asset); assertNotNull(this.asset.getRetirementInfo()); assertEquals("12345", this.asset.getRetirementInfo().getDocumentNumber()); } public void testRetirementInfoService_NotRetired() throws Exception { this.asset.setInventoryStatusCode("A"); this.retirementInfoService.setRetirementInfo(this.asset); assertNull(this.asset.getRetirementInfo()); } }