/*
* 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.ar.document.service;
import static org.kuali.kfs.sys.fixture.UserNameFixture.wklykins;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.kuali.kfs.coa.service.ObjectCodeService;
import org.kuali.kfs.integration.cg.ContractsAndGrantsBillingAgency;
import org.kuali.kfs.integration.cg.ContractsAndGrantsBillingAward;
import org.kuali.kfs.module.ar.businessobject.AccountsReceivableDocumentHeader;
import org.kuali.kfs.module.ar.businessobject.AwardAccountObjectCodeTotalBilled;
import org.kuali.kfs.module.ar.businessobject.ContractsGrantsInvoiceDetail;
import org.kuali.kfs.module.ar.businessobject.CustomerAddress;
import org.kuali.kfs.module.ar.businessobject.CustomerInvoiceDetail;
import org.kuali.kfs.module.ar.businessobject.InvoiceAccountDetail;
import org.kuali.kfs.module.ar.businessobject.InvoiceAddressDetail;
import org.kuali.kfs.module.ar.businessobject.InvoiceBill;
import org.kuali.kfs.module.ar.businessobject.InvoiceDetailAccountObjectCode;
import org.kuali.kfs.module.ar.businessobject.InvoiceGeneralDetail;
import org.kuali.kfs.module.ar.businessobject.InvoiceMilestone;
import org.kuali.kfs.module.ar.businessobject.InvoiceSuspensionCategory;
import org.kuali.kfs.module.ar.businessobject.OrganizationAccountingDefault;
import org.kuali.kfs.module.ar.dataaccess.AwardAccountObjectCodeTotalBilledDao;
import org.kuali.kfs.module.ar.document.ContractsGrantsInvoiceDocument;
import org.kuali.kfs.module.ar.document.dataaccess.ContractsGrantsInvoiceDocumentDao;
import org.kuali.kfs.module.ar.document.service.impl.ContractsGrantsInvoiceDocumentServiceImpl;
import org.kuali.kfs.module.ar.fixture.ARAgencyFixture;
import org.kuali.kfs.module.ar.fixture.ARAwardAccountFixture;
import org.kuali.kfs.module.ar.fixture.ARAwardFixture;
import org.kuali.kfs.module.ar.fixture.ContractsGrantsInvoiceDetailFixture;
import org.kuali.kfs.module.ar.fixture.ContractsGrantsInvoiceDocumentFixture;
import org.kuali.kfs.module.ar.fixture.CustomerAddressFixture;
import org.kuali.kfs.module.ar.fixture.CustomerInvoiceDetailFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceAccountDetailFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceAddressDetailFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceBillFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceDetailAccountObjectCodeFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceGeneralDetailFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceMilestoneFixture;
import org.kuali.kfs.module.ar.fixture.InvoiceSuspensionCategoryFixture;
import org.kuali.kfs.module.ar.service.CostCategoryService;
import org.kuali.kfs.module.ar.service.impl.ContractsGrantsInvoiceCreateDocumentServiceImpl;
import org.kuali.kfs.module.cg.businessobject.Award;
import org.kuali.kfs.module.cg.businessobject.AwardAccount;
import org.kuali.kfs.module.cg.fixture.LetterOfCreditFundFixture;
import org.kuali.kfs.sys.ConfigureContext;
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.service.OptionsService;
import org.kuali.kfs.sys.service.UniversityDateService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.coreservice.framework.parameter.ParameterService;
import org.kuali.rice.kew.api.exception.WorkflowException;
import org.kuali.rice.krad.service.BusinessObjectService;
import org.kuali.rice.krad.service.DocumentService;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* This class tests the ContractsGrantsInvoiceDocumentService
*/
@ConfigureContext(session = wklykins)
public class ContractsGrantsInvoiceDocumentServiceTest extends KualiTestBase {
ContractsGrantsInvoiceDocumentService contractsGrantsInvoiceDocumentService;
ContractsGrantsInvoiceDocumentServiceImpl contractsGrantsInvoiceDocumentServiceImpl = new ContractsGrantsInvoiceDocumentServiceImpl();
ContractsGrantsInvoiceCreateDocumentServiceImpl contractsGrantsInvoiceCreateDocumentServiceImpl = new ContractsGrantsInvoiceCreateDocumentServiceImpl();
/**
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
contractsGrantsInvoiceDocumentService = SpringContext.getBean(ContractsGrantsInvoiceDocumentService.class);
contractsGrantsInvoiceDocumentServiceImpl.setBusinessObjectService(SpringContext.getBean(BusinessObjectService.class));
contractsGrantsInvoiceDocumentServiceImpl.setObjectCodeService(SpringContext.getBean(ObjectCodeService.class));
contractsGrantsInvoiceDocumentServiceImpl.setUniversityDateService(SpringContext.getBean(UniversityDateService.class));
contractsGrantsInvoiceDocumentServiceImpl.setOptionsService(SpringContext.getBean(OptionsService.class));
contractsGrantsInvoiceDocumentServiceImpl.setContractsGrantsInvoiceDocumentDao(SpringContext.getBean(ContractsGrantsInvoiceDocumentDao.class));
contractsGrantsInvoiceDocumentServiceImpl.setCostCategoryService(SpringContext.getBean(CostCategoryService.class));
contractsGrantsInvoiceCreateDocumentServiceImpl.setAwardAccountObjectCodeTotalBilledDao(SpringContext.getBean(AwardAccountObjectCodeTotalBilledDao.class));
contractsGrantsInvoiceCreateDocumentServiceImpl.setBusinessObjectService(SpringContext.getBean(BusinessObjectService.class));
contractsGrantsInvoiceCreateDocumentServiceImpl.setUniversityDateService(SpringContext.getBean(UniversityDateService.class));
contractsGrantsInvoiceCreateDocumentServiceImpl.setContractsGrantsInvoiceDocumentService(contractsGrantsInvoiceDocumentServiceImpl);
contractsGrantsInvoiceCreateDocumentServiceImpl.setCostCategoryService(SpringContext.getBean(CostCategoryService.class));
contractsGrantsInvoiceCreateDocumentServiceImpl.setOptionsService(SpringContext.getBean(OptionsService.class));
super.setUp();
}
/**
* Tests the prorateBill() method of service.
*/
public void testProrateBill() throws WorkflowException {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD1.createAward();
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL1.createInvoiceDetail();
ContractsGrantsInvoiceDetail invoiceDetail_2 = ContractsGrantsInvoiceDetailFixture.INV_DTL2.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
invoiceDetails.add(invoiceDetail_2);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
KualiDecimal value1 = new KualiDecimal(5);
KualiDecimal value2 = new KualiDecimal(0);
contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(0).setInvoiceAmount(value1);
contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(1).setInvoiceAmount(value2);
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
// setup various invoice detail collections on invoice document
contractsGrantsInvoiceCreateDocumentServiceImpl.generateValuesForCategories(contractsGrantsInvoiceDocument.getDocumentNumber(), contractsGrantsInvoiceDocument.getInvoiceDetailAccountObjectCodes(), new HashMap<String, KualiDecimal>(), new ArrayList<AwardAccountObjectCodeTotalBilled>());
contractsGrantsInvoiceDocumentService.prorateBill(contractsGrantsInvoiceDocument);
assertEquals(value1, contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(0).getInvoiceAmount());
assertEquals(value2, contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(1).getInvoiceAmount());
// change the award total, it should now prorate
contractsGrantsInvoiceDocument.getInvoiceGeneralDetail().setAwardTotal(new KualiDecimal(4));
contractsGrantsInvoiceDocumentService.prorateBill(contractsGrantsInvoiceDocument);
assertEquals(new KualiDecimal(4.00), contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(0).getInvoiceAmount());
assertEquals(new KualiDecimal(0), contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(1).getInvoiceAmount());
}
/**
* Tests the updateInvoiceDetailTotalDirectCost() method of service.
*/
public void testUpdateInvoiceDetailTotalDirectCost() {
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL1.createInvoiceDetail();
ContractsGrantsInvoiceDetail invoiceDetail_2 = ContractsGrantsInvoiceDetailFixture.INV_DTL3.createInvoiceDetail();
KualiDecimal value1 = new KualiDecimal(2.23);
KualiDecimal value2 = new KualiDecimal(5.43);
invoiceDetail_1.setInvoiceAmount(value1);
invoiceDetail_2.setInvoiceAmount(value2);
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
invoiceDetails.add(invoiceDetail_2);
KualiDecimal expectedResult = new KualiDecimal(7.66);
assertTrue(expectedResult.compareTo(contractsGrantsInvoiceDocumentServiceImpl.getInvoiceDetailExpenditureSum(invoiceDetails)) == 0);
}
/**
* Tests the recalculateAccountDetails() method of service.
*/
public void testRecalculateAccountDetails() {
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
invoiceAccountDetail_1.setInvoiceAmount(new KualiDecimal(4.50));
invoiceAccountDetail_2.setInvoiceAmount(new KualiDecimal(5.50));
List<InvoiceAccountDetail> invoiceAccountDetails = new ArrayList<InvoiceAccountDetail>();
invoiceAccountDetails.add(invoiceAccountDetail_1);
invoiceAccountDetails.add(invoiceAccountDetail_2);
InvoiceDetailAccountObjectCode invoiceDetailAccountObjectCode_1 = InvoiceDetailAccountObjectCodeFixture.DETAIL_ACC_OBJ_CD1.createInvoiceDetailAccountObjectCode();
InvoiceDetailAccountObjectCode invoiceDetailAccountObjectCode_2 = InvoiceDetailAccountObjectCodeFixture.DETAIL_ACC_OBJ_CD2.createInvoiceDetailAccountObjectCode();
KualiDecimal value1 = (new KualiDecimal(3.01));
KualiDecimal value2 = (new KualiDecimal(2.02));
invoiceDetailAccountObjectCode_1.setCurrentExpenditures(value1);
invoiceDetailAccountObjectCode_2.setCurrentExpenditures(value2);
List<InvoiceDetailAccountObjectCode> invoiceDetailAccountObjectCodes = new ArrayList<InvoiceDetailAccountObjectCode>();
invoiceDetailAccountObjectCodes.add(invoiceDetailAccountObjectCode_1);
invoiceDetailAccountObjectCodes.add(invoiceDetailAccountObjectCode_2);
contractsGrantsInvoiceDocumentServiceImpl.recalculateAccountDetails(invoiceAccountDetails, invoiceDetailAccountObjectCodes);
assertEquals(value1, invoiceAccountDetails.get(0).getInvoiceAmount());
assertEquals(value2, invoiceAccountDetails.get(1).getInvoiceAmount());
}
/**
* Tests the recalculateNewTotalBilled() method of service.
*/
public void testRecalculateNewTotalBilled() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD1.createAward();
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
KualiDecimal value1 = new KualiDecimal(5.10);
KualiDecimal value2 = new KualiDecimal(6.50);
// set InvoiceDetails
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL1.createInvoiceDetail();
ContractsGrantsInvoiceDetail invoiceDetail_2 = ContractsGrantsInvoiceDetailFixture.INV_DTL3.createInvoiceDetail();
invoiceDetail_1.setInvoiceAmount(value1);
invoiceDetail_2.setInvoiceAmount(value2);
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
invoiceDetails.add(invoiceDetail_2);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
// set InvoiceAccountDetails
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
// setup various invoice detail collections on invoice document
contractsGrantsInvoiceCreateDocumentServiceImpl.generateValuesForCategories(contractsGrantsInvoiceDocument.getDocumentNumber(), contractsGrantsInvoiceDocument.getInvoiceDetailAccountObjectCodes(), new HashMap<String, KualiDecimal>(), new ArrayList<AwardAccountObjectCodeTotalBilled>());
contractsGrantsInvoiceDocumentServiceImpl.recalculateTotalAmountBilledToDate(contractsGrantsInvoiceDocument);
// making values in account detail different. This simulates that the user have changed
// the current expenditure amount and will cause recalculation.
value1 = new KualiDecimal(10.22);
value2 = new KualiDecimal(8.44);
invoiceDetails.get(0).setInvoiceAmount(value1);
invoiceDetails.get(1).setInvoiceAmount(value2);
contractsGrantsInvoiceDocumentServiceImpl.recalculateTotalAmountBilledToDate(contractsGrantsInvoiceDocument);
// assert new value
assertEquals(value1.add(value2), contractsGrantsInvoiceDocument.getInvoiceGeneralDetail().getTotalAmountBilledToDate());
}
/**
* Tests updateSuspensionCategoriesOnDocument() method.
*/
public void testUpdateSuspensionCategoriesOnDocument() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD2.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceSuspensionCategory invoiceSuspensionCategory_1 = InvoiceSuspensionCategoryFixture.INV_SUSPEN_CTGR1.createInvoiceSuspensionCategory();
InvoiceSuspensionCategory invoiceSuspensionCategory_2 = InvoiceSuspensionCategoryFixture.INV_SUSPEN_CTGR2.createInvoiceSuspensionCategory();
List<InvoiceSuspensionCategory> invoiceSuspensionCategories = new ArrayList<>();
invoiceSuspensionCategories.add(invoiceSuspensionCategory_1);
invoiceSuspensionCategories.add(invoiceSuspensionCategory_2);
contractsGrantsInvoiceDocument.setInvoiceSuspensionCategories(invoiceSuspensionCategories);
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(4, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
// update them again, should be the same results
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(4, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
/**
* Tests updateSuspensionCategoriesOnDocument() method on Correction document.
*/
public void testUpdateSuspensionCategoriesOnCorrectionDocument() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
contractsGrantsInvoiceDocument.getFinancialSystemDocumentHeader().setFinancialDocumentInErrorNumber("12345");
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD2.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
// update them again, should be the same results
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
/**
* Tests updateSuspensionCategoriesOnDocument() method.
*/
public void testUpdateSuspensionCategoriesOnDocumentValid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
InvoiceSuspensionCategory invoiceSuspensionCategory_1 = InvoiceSuspensionCategoryFixture.INV_SUSPEN_CTGR3.createInvoiceSuspensionCategory();
InvoiceSuspensionCategory invoiceSuspensionCategory_2 = InvoiceSuspensionCategoryFixture.INV_SUSPEN_CTGR4.createInvoiceSuspensionCategory();
List<InvoiceSuspensionCategory> invoiceSuspensionCategories = new ArrayList<>();
invoiceSuspensionCategory_1.setDocumentNumber(contractsGrantsInvoiceDocument.getDocumentNumber());
invoiceSuspensionCategory_2.setDocumentNumber(contractsGrantsInvoiceDocument.getDocumentNumber());
invoiceSuspensionCategories.add(invoiceSuspensionCategory_1);
invoiceSuspensionCategories.add(invoiceSuspensionCategory_2);
contractsGrantsInvoiceDocument.setInvoiceSuspensionCategories(invoiceSuspensionCategories);
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory1Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL7.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("1", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory2Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD6.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("2", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory3Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
((Award)award).setAdditionalFormsRequiredIndicator(true);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("3", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory4InvalidNoAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("4", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory4InvalidUSAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = CustomerAddressFixture.CUSTOMER_ADDRESS_INVALID_US_PRIMARY1.createCustomerAddress();
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("4", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory4ValidUSAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = CustomerAddressFixture.CUSTOMER_ADDRESS_VALID_US_PRIMARY1.createCustomerAddress();
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory4InvalidInternationalAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = CustomerAddressFixture.CUSTOMER_ADDRESS_INVALID_FOREIGN_PRIMARY1.createCustomerAddress();
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("4", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory4ValidInternationalAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = CustomerAddressFixture.CUSTOMER_ADDRESS_VALID_FOREIGN_PRIMARY1.createCustomerAddress();
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory5InvalidNoAltAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail_1 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
InvoiceAddressDetail invoiceAddressDetail_2 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL2.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail_1.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail_1);
invoiceAddressDetails.add(invoiceAddressDetail_2);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("5", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory5InvalidUSAltAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail_1 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
InvoiceAddressDetail invoiceAddressDetail_2 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL2.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail_1.setCustomerAddress(customerAddress);
CustomerAddress customerAddress2 = CustomerAddressFixture.CUSTOMER_ADDRESS_INVALID_US_ALTERNATE1.createCustomerAddress();
invoiceAddressDetail_2.setCustomerAddress(customerAddress2);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail_1);
invoiceAddressDetails.add(invoiceAddressDetail_2);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("5", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory5ValidUSAltAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail_1 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
InvoiceAddressDetail invoiceAddressDetail_2 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL2.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail_1.setCustomerAddress(customerAddress);
CustomerAddress customerAddress2 = CustomerAddressFixture.CUSTOMER_ADDRESS_VALID_US_ALTERNATE1.createCustomerAddress();
invoiceAddressDetail_2.setCustomerAddress(customerAddress2);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail_1);
invoiceAddressDetails.add(invoiceAddressDetail_2);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory5InvalidForeignAltAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail_1 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
InvoiceAddressDetail invoiceAddressDetail_2 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL2.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail_1.setCustomerAddress(customerAddress);
CustomerAddress customerAddress2 = CustomerAddressFixture.CUSTOMER_ADDRESS_INVALID_FOREIGN_ALTERNATE1.createCustomerAddress();
invoiceAddressDetail_2.setCustomerAddress(customerAddress2);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail_1);
invoiceAddressDetails.add(invoiceAddressDetail_2);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("5", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory5ValidForeignAltAddress() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail_1 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
InvoiceAddressDetail invoiceAddressDetail_2 = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL2.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail_1.setCustomerAddress(customerAddress);
CustomerAddress customerAddress2 = CustomerAddressFixture.CUSTOMER_ADDRESS_VALID_FOREIGN_ALTERNATE1.createCustomerAddress();
invoiceAddressDetail_2.setCustomerAddress(customerAddress2);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail_1);
invoiceAddressDetails.add(invoiceAddressDetail_2);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(0, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory6Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD8.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("6", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory7Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL1.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL2.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("7", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory8Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD10.createAward();
((Award)award).setLetterOfCreditFund(LetterOfCreditFundFixture.CG_LOCF.createLetterOfCreditFund());
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL7.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("8", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory9Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
AwardAccount awardAccount_1 = ARAwardAccountFixture.AWD_ACCT_3.createAwardAccount();
awardAccount_1.refreshReferenceObject("account");
List<AwardAccount> awardAccounts = new ArrayList<AwardAccount>();
awardAccounts.add(awardAccount_1);
((Award)award).setAwardAccounts(awardAccounts);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("9", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory10Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
((Award)award).setExcludedFromInvoicing(true);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("10", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory11Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
AwardAccount awardAccount_1 = ARAwardAccountFixture.AWD_ACCT_4.createAwardAccount();
awardAccount_1.refreshReferenceObject("account");
List<AwardAccount> awardAccounts = new ArrayList<AwardAccount>();
awardAccounts.add(awardAccount_1);
((Award)award).setAwardAccounts(awardAccounts);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
InvoiceDetailAccountObjectCode invoiceDetailAccountObjectCode_1 = InvoiceDetailAccountObjectCodeFixture.DETAIL_ACC_OBJ_CD3.createInvoiceDetailAccountObjectCode();
List<InvoiceDetailAccountObjectCode> invoiceDetailAccountObjectCodes = new ArrayList<InvoiceDetailAccountObjectCode>();
invoiceDetailAccountObjectCodes.add(invoiceDetailAccountObjectCode_1);
contractsGrantsInvoiceDocument.setInvoiceDetailAccountObjectCodes(invoiceDetailAccountObjectCodes);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("11", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
public void testUpdateSuspensionCategoriesOnDocumentCategory12Invalid() {
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
assertNotNull(contractsGrantsInvoiceDocument);
ContractsAndGrantsBillingAward award = ARAwardFixture.CG_AWARD4.createAward();
((Award)award).setStopWorkIndicator(true);
ContractsAndGrantsBillingAgency agency = ARAgencyFixture.CG_AGENCY1.createAgency();
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL5.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
InvoiceGeneralDetail invoiceGeneralDetail = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
invoiceGeneralDetail.setAward(award);
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(invoiceGeneralDetail);
InvoiceAddressDetail invoiceAddressDetail = InvoiceAddressDetailFixture.INV_ADDRESS_DETAIL1.createInvoiceAddressDetail();
CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class);
CustomerAddress customerAddress = customerAddressService.getPrimaryAddress(agency.getCustomerNumber());
invoiceAddressDetail.setCustomerAddress(customerAddress);
List<InvoiceAddressDetail> invoiceAddressDetails = new ArrayList<>();
invoiceAddressDetails.add(invoiceAddressDetail);
contractsGrantsInvoiceDocument.setInvoiceAddressDetails(invoiceAddressDetails);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL7.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
contractsGrantsInvoiceDocumentService.updateSuspensionCategoriesOnDocument(contractsGrantsInvoiceDocument);
assertEquals(1, contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().size());
assertEquals("12", contractsGrantsInvoiceDocument.getInvoiceSuspensionCategories().iterator().next().getSuspensionCategoryCode());
}
/**
* This method is intended to test if the source accounting lines are created properly for every type of GLPE and invoicing
* option in the award.
*/
public void testCreateSourceAccountingLines() {
String coaCode = "BL";
String orgCode = "SRS";
DocumentService documentService = SpringContext.getBean(DocumentService.class);
ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument = ContractsGrantsInvoiceDocumentFixture.CG_INV_DOC1.createContractsGrantsInvoiceDocument(documentService);
contractsGrantsInvoiceDocument.setBillByChartOfAccountCode(coaCode);
contractsGrantsInvoiceDocument.setBilledByOrganizationCode(orgCode);
AccountsReceivableDocumentHeader accountsReceivableDocumentHeader = new AccountsReceivableDocumentHeader();
accountsReceivableDocumentHeader.setDocumentNumber(contractsGrantsInvoiceDocument.getDocumentNumber());
accountsReceivableDocumentHeader.setProcessingChartOfAccountCode(coaCode);
accountsReceivableDocumentHeader.setProcessingOrganizationCode(orgCode);
contractsGrantsInvoiceDocument.setAccountsReceivableDocumentHeader(accountsReceivableDocumentHeader);
InvoiceGeneralDetail inv_Gnrl_Dtl_1 = InvoiceGeneralDetailFixture.INV_GNRL_DTL3.createInvoiceGeneralDetail();
InvoiceGeneralDetail inv_Gnrl_Dtl_Mlstn = InvoiceGeneralDetailFixture.INV_GNRL_DTL1.createInvoiceGeneralDetail();
InvoiceGeneralDetail inv_Gnrl_Dtl_Bill = InvoiceGeneralDetailFixture.INV_GNRL_DTL4.createInvoiceGeneralDetail();
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
ContractsGrantsInvoiceDetail invoiceDetail_1 = ContractsGrantsInvoiceDetailFixture.INV_DTL8.createInvoiceDetail();
ContractsGrantsInvoiceDetail invoiceDetail_2 = ContractsGrantsInvoiceDetailFixture.INV_DTL9.createInvoiceDetail();
List<ContractsGrantsInvoiceDetail> invoiceDetails = new ArrayList<ContractsGrantsInvoiceDetail>();
invoiceDetails.add(invoiceDetail_1);
invoiceDetails.add(invoiceDetail_2);
contractsGrantsInvoiceDocument.setInvoiceDetails(invoiceDetails);
List<InvoiceDetailAccountObjectCode> invoiceDetailAccountObjectCodes = new ArrayList<>();
invoiceDetailAccountObjectCodes.add(InvoiceDetailAccountObjectCodeFixture.DETAIL_ACC_OBJ_CD4.createInvoiceDetailAccountObjectCode());
invoiceDetailAccountObjectCodes.add(InvoiceDetailAccountObjectCodeFixture.DETAIL_ACC_OBJ_CD5.createInvoiceDetailAccountObjectCode());
contractsGrantsInvoiceDocument.setInvoiceDetailAccountObjectCodes(invoiceDetailAccountObjectCodes);
KualiDecimal value1 = new KualiDecimal(5);
KualiDecimal value2 = new KualiDecimal(0);
contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(0).setInvoiceAmount(value1);
contractsGrantsInvoiceDocument.getDirectCostInvoiceDetails().get(1).setInvoiceAmount(value2);
InvoiceAccountDetail invoiceAccountDetail_1 = InvoiceAccountDetailFixture.INV_ACCT_DTL3.createInvoiceAccountDetail();
InvoiceAccountDetail invoiceAccountDetail_2 = InvoiceAccountDetailFixture.INV_ACCT_DTL4.createInvoiceAccountDetail();
List<InvoiceAccountDetail> accountDetails = new ArrayList<InvoiceAccountDetail>();
accountDetails.add(invoiceAccountDetail_1);
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
List<InvoiceMilestone> invoiceMilestones = new ArrayList<InvoiceMilestone>();
InvoiceMilestone invMilestone_1 = InvoiceMilestoneFixture.INV_MLSTN_3.createInvoiceMilestone();
invoiceMilestones.add(invMilestone_1);
contractsGrantsInvoiceDocument.setInvoiceMilestones(invoiceMilestones);
List<InvoiceBill> invoiceBills = new ArrayList<InvoiceBill>();
InvoiceBill invBill_1 = InvoiceBillFixture.INV_BILL_3.createInvoiceBill();
invoiceBills.add(invBill_1);
contractsGrantsInvoiceDocument.setInvoiceBills(invoiceBills);
// To set Organization Accounting default
Map<String, Object> criteria = new HashMap<String, Object>();
Integer currentYear = SpringContext.getBean(UniversityDateService.class).getCurrentFiscalYear();
criteria.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, currentYear);
criteria.put(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, coaCode);
criteria.put(KFSPropertyConstants.ORGANIZATION_CODE, orgCode);
OrganizationAccountingDefault organizationAccountingDefault = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(OrganizationAccountingDefault.class, criteria);
if (ObjectUtils.isNull(organizationAccountingDefault)) {
organizationAccountingDefault = new OrganizationAccountingDefault();
organizationAccountingDefault.setChartOfAccountsCode("BL");
organizationAccountingDefault.setOrganizationCode("SRS");
organizationAccountingDefault.setUniversityFiscalYear(currentYear);
}
organizationAccountingDefault.setDefaultInvoiceFinancialObjectCode("5000");
organizationAccountingDefault.setDefaultPaymentFinancialObjectCode("8118");
SpringContext.getBean(BusinessObjectService.class).save(organizationAccountingDefault);
// To test for all combinations of GLPE and Award Invoicing options
// GLPE is 1.
ParameterService parameterService = SpringContext.getBean(ParameterService.class);
// To check if the source accounting lines are created as expected.
CustomerInvoiceDetail customerInvoiceDetail = CustomerInvoiceDetailFixture.CUSTOMER_INVOICE_DETAIL_CHART_RECEIVABLE_2.createCustomerInvoiceDetail();
// 1. Invoicing by Award
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1a. Award with Milestones
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Mlstn);
inv_Gnrl_Dtl_Mlstn.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1b. Award with Bills
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Bill);
inv_Gnrl_Dtl_Bill.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 2. Invoicing by Account
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_ACCOUNT.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 3. Invoicing by Contract Control Account. For this case the account number might be different so setting a different
// invoice account detail here.
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_CCA.createAward());
accountDetails.clear();
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// To check if the source accounting lines are created as expected.
customerInvoiceDetail = CustomerInvoiceDetailFixture.CUSTOMER_INVOICE_DETAIL_SUBFUND_RECEIVABLE_2.createCustomerInvoiceDetail();
accountDetails.clear();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
// 1. Invoicing by Award
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1a. Award with Milestones
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Mlstn);
inv_Gnrl_Dtl_Mlstn.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1b. Award with Bills
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Bill);
inv_Gnrl_Dtl_Bill.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 2. Invoicing by Account
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_ACCOUNT.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 3. Invoicing by Contract Control Account. For this case the account number might be different so setting a different
// invoice account detail here.
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_CCA.createAward());
accountDetails.clear();
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// Use the same customer Invoice detail as Subfund
customerInvoiceDetail = CustomerInvoiceDetailFixture.CUSTOMER_INVOICE_DETAIL_SUBFUND_RECEIVABLE_2.createCustomerInvoiceDetail();
accountDetails.clear();
accountDetails.add(invoiceAccountDetail_1);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
// 1. Invoicing by Award
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_AWARD.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1a. Award with Milestones - use the same values from Monthly
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Mlstn);
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 1b. Award with Bills - use the same values from Monthly
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_Bill);
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 2. Invoicing by Account
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_ACCOUNT.createAward());
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
// 3. Invoicing by Contract Control Account. For this case the account number might be different so setting a different
// invoice account detail here.
contractsGrantsInvoiceDocument.setInvoiceGeneralDetail(inv_Gnrl_Dtl_1);
inv_Gnrl_Dtl_1.setAward(ARAwardFixture.CG_AWARD_INV_CCA.createAward());
accountDetails.clear();
accountDetails.add(invoiceAccountDetail_2);
contractsGrantsInvoiceDocument.setAccountDetails(accountDetails);
compareSourceAccountingLines(contractsGrantsInvoiceDocument, customerInvoiceDetail);
}
/**
* This method compares the source accounting lines.
*
* @param contractsGrantsInvoiceDocument The invoice document object.
* @param customerInvoiceDetail The customer invoice detail object.
*/
public void compareSourceAccountingLines(ContractsGrantsInvoiceDocument contractsGrantsInvoiceDocument, CustomerInvoiceDetail customerInvoiceDetail) {
// To clear source accounting lines every time to check all combinations.
contractsGrantsInvoiceDocument.getSourceAccountingLines().clear();
contractsGrantsInvoiceDocumentService.createSourceAccountingLines(contractsGrantsInvoiceDocument, contractsGrantsInvoiceDocument.getInvoiceGeneralDetail().getAward().getActiveAwardAccounts());
CustomerInvoiceDetail invoiceDetail = (CustomerInvoiceDetail) contractsGrantsInvoiceDocument.getSourceAccountingLine(0);
assertEquals(invoiceDetail.getAccountNumber(), customerInvoiceDetail.getAccountNumber());
assertEquals(invoiceDetail.getChartOfAccountsCode(), customerInvoiceDetail.getChartOfAccountsCode());
assertEquals(invoiceDetail.getFinancialObjectCode(), customerInvoiceDetail.getFinancialObjectCode());
assertEquals(invoiceDetail.getAmount(), customerInvoiceDetail.getAmount());
}
}