/* * 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.batch.vo; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.kuali.kfs.module.ar.batch.report.CustomerLoadBatchErrors; import org.kuali.kfs.module.ar.businessobject.Customer; import org.kuali.kfs.module.ar.businessobject.CustomerAddress; import org.kuali.kfs.sys.ConfigureContext; import org.kuali.kfs.sys.context.KualiTestBase; @ConfigureContext public class CustomerLoadDigesterConverterTest extends KualiTestBase { public void testConvertVOToCustomer_ValidBatchFile() { // setup a valid VO to test List<Map<String,String>> addresses = new ArrayList<Map<String,String>>(); addresses.add(CustomerLoadVOGenerator.getValidAddressVO1()); CustomerDigesterVO customerVO = CustomerLoadVOGenerator.generateCustomerVO(CustomerLoadVOGenerator.getValidCustomerVO1(), addresses); // shouldnt throw any errors boolean errors = false; CustomerDigesterAdapter adapter = new CustomerDigesterAdapter(); CustomerLoadBatchErrors batchErrors = new CustomerLoadBatchErrors(); Customer customer = null; try { customer = adapter.convert(customerVO, batchErrors); } catch (Exception e) { errors = true; } // if any errors were generated, that would count as a fail errors |= !batchErrors.isEmpty(); assertFalse("No errors should have occurred on conversion from VO to BO.", errors); assertNotNull("Customer object should not be null.", customer); // lets make sure the expected fields all got converted assertNotNull("Customer name should not be null.", customer.getCustomerName()); assertNotNull("Parent Company Number should be null.", customer.getCustomerParentCompanyNumber()); assertNotNull("Customer Type Code should not be null.", customer.getCustomerTypeCode()); assertNotNull("Customer Last Activity Date should not be null.", customer.getCustomerLastActivityDate()); assertNotNull("Customer Tax Type Code should not be null.", customer.getCustomerTaxTypeCode()); assertNotNull("Customer Tax Number should not be null.", customer.getCustomerTaxNbr()); assertNotNull("Customer Active Indicator should not be null.", customer.isActive()); assertNotNull("Customer Phone Number should not be null.", customer.getCustomerPhoneNumber()); assertNotNull("Customer 800 Phone Number should not be null.", customer.getCustomer800PhoneNumber()); assertNotNull("Customer Contact Name should not be null.", customer.getCustomerContactName()); assertNotNull("Customer Contact Phone Number should not be null.", customer.getCustomerContactPhoneNumber()); assertNotNull("Customer Fax Number should not be null.", customer.getCustomerFaxNumber()); assertNull("Customer Birth Date should be null.", customer.getCustomerBirthDate()); assertNotNull("Customer Tax Exempt Indicator should not be null.", customer.isCustomerTaxExemptIndicator()); assertNull("Customer Credit Limit Amount should be null.", customer.getCustomerCreditLimitAmount()); assertNotNull("Customer Credit Approved By Name should not be null.", customer.getCustomerCreditApprovedByName()); assertNotNull("Customer Email Address should not be null.", customer.getCustomerEmailAddress()); CustomerAddress address = customer.getCustomerAddresses().get(0); assertNotNull("The first address should not be null.", address); assertNotNull("Customer Address Name should not be null.", address.getCustomerAddressName()); assertNotNull("Customer Line1 Street Address should not be null.", address.getCustomerLine1StreetAddress()); assertNotNull("Customer Line2 Street Address should not be null.", address.getCustomerLine2StreetAddress()); assertNotNull("Customer City Name should not be null.", address.getCustomerCityName()); assertNotNull("Customer State Code should not be null.", address.getCustomerStateCode()); assertNotNull("Customer Zip Code should not be null.", address.getCustomerZipCode()); assertNotNull("Customer Country Code should not be null.", address.getCustomerCountryCode()); assertNotNull("Customer Address Internaltional Province Name should be null.", address.getCustomerAddressInternationalProvinceName()); assertEquals("Customer Address International Province Name should be empty string.", "", address.getCustomerAddressInternationalProvinceName()); assertNotNull("Customer International Mail Code should be null.", address.getCustomerInternationalMailCode()); assertEquals("Customer International Mail Code should be empty string.", "", address.getCustomerInternationalMailCode()); assertNotNull("Customer Email Address should not be null.", address.getCustomerEmailAddress()); assertNotNull("Customer Address Type Code should not be null.", address.getCustomerAddressTypeCode()); assertNotNull("Customer Address End Date should not be null.", address.getCustomerAddressEndDate()); } public void testConvertVOToCustomer_InvalidDates() { // setup a valid VO to test List<Map<String,String>> addresses = new ArrayList<Map<String,String>>(); addresses.add(CustomerLoadVOGenerator.getBadAddressVO_InvalidDates_01()); CustomerDigesterVO customerVO = CustomerLoadVOGenerator.generateCustomerVO(CustomerLoadVOGenerator.getBadCustomerVO_InvalidDates_01(), addresses); // shouldnt throw any errors boolean exception = false; CustomerDigesterAdapter adapter = new CustomerDigesterAdapter(); CustomerLoadBatchErrors batchErrors = new CustomerLoadBatchErrors(); Customer customer = null; try { customer = adapter.convert(customerVO, batchErrors); } catch (Exception e) { exception = true; } assertFalse("No exceptions should have occurred on conversion from VO to BO.", exception); assertNotNull("Customer object should not be null.", customer); // if any errors were generated, that would count as a fail assertFalse("Batch Errors should not be empty.", batchErrors.isEmpty()); assertEquals("Should be one companyName with errors.", 1, batchErrors.getCompaniesWithErrors()); assertEquals("Should be two errors total.", 2, batchErrors.getTotalErrors()); // the failed date fields should both be null assertNull("The failed customer birthDate should be null.", customer.getCustomerBirthDate()); assertNull("The address should have a null end-date.", customer.getCustomerAddresses().get(0).getCustomerAddressEndDate()); } }