/* * 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.tem.businessobject; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.module.tem.businessobject.defaultvalue.NextAgencyStagingDataIdFinder; import org.kuali.kfs.sys.ConfigureContext; 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.core.api.util.type.KualiDecimal; import org.kuali.rice.krad.service.BusinessObjectService; import org.kuali.rice.krad.service.DataDictionaryService; public class AgencyStagingDataTest extends KualiTestBase { private BusinessObjectService businessObjectService; private DataDictionaryService dataDictionaryService; private DateTimeService dateTimeService; private NextAgencyStagingDataIdFinder idFinder; /** * @see junit.framework.TestCase#setUp() */ @Override protected void setUp() throws Exception { super.setUp(); businessObjectService = SpringContext.getBean(BusinessObjectService.class); dataDictionaryService = SpringContext.getBean(DataDictionaryService.class); dateTimeService = SpringContext.getBean(DateTimeService.class); idFinder = new NextAgencyStagingDataIdFinder(); } @ConfigureContext(shouldCommitTransactions = false) public void testOJBConfiguration() throws Exception { Date date = dateTimeService.getCurrentSqlDate(); Timestamp time = dateTimeService.getCurrentTimestamp(); KualiDecimal amount = new KualiDecimal(1234.56); KualiDecimal maxAmount = new KualiDecimal(999999.99); // String of 100 chars String longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id egestas lorem. Integer tempor sed."; // the spec has 3 accounting information objects ArrayList<TripAccountingInformation> tripAccountingInformation = new ArrayList<TripAccountingInformation>(); for (int i=0; i<3; i++) { TripAccountingInformation accountInfo = new TripAccountingInformation(); accountInfo.setTripAccountNumber("1234567"); accountInfo.setTripSubAccountNumber("12345"); accountInfo.setObjectCode("1234"); accountInfo.setSubObjectCode("123"); accountInfo.setProjectCode("1234567890"); accountInfo.setOrganizationReference("12345678"); tripAccountingInformation.add(accountInfo); } AgencyStagingData agency = new AgencyStagingData(); agency.setId(Integer.valueOf(idFinder.getValue())); agency.setErrorCode("errorcode"); agency.setAgencyDataId(123456789); agency.setCreditCardOrAgencyCode("abcd"); agency.setAgency("agency"); agency.setOtherCompanyName("other company name"); agency.setAgencyFileName("FL Name"); agency.setMerchantName("merchant name"); agency.setBillingCycleDate(date); agency.setTripId("abcdef123456"); agency.setTripInvoiceNumber("invoice1234"); agency.setTripTravelerTypeId("1"); agency.setOtherAmount(amount); agency.setTravelerName("Traveler Name"); agency.setTravelerId("1"); agency.setTravelerNetworkId("123456789"); agency.setTripExpenseAmount(maxAmount); agency.setAlternateTripId(null); agency.setTripArrangerName("Arranger Name"); agency.setTripAccountingInformation(tripAccountingInformation); agency.setGroupObjectCode("Group Obj Code"); agency.setDistributionCode("Code"); agency.setTripDepartureDate(date); agency.setTripReturnDate(date); agency.setFareSaverCode("C"); agency.setAirBookDate(date); agency.setAirCarrierCode("SWA"); agency.setAirTicketNumber("air 1234"); agency.setPnrNumber("PNR-1234567890"); agency.setAirTicketClass("class 1"); agency.setAirTransactionAmount(amount); agency.setAirBaseFareAmount(maxAmount); agency.setAirTaxAmount(amount); agency.setAirLowFareAmount(maxAmount); agency.setAirReasonCode("R"); agency.setAirSegmentId(longText); agency.setAirDestinationCode("LIH"); agency.setAirServiceFeeNumber("12345678901234567890"); agency.setAirServiceFeeAmount(amount); agency.setTransactionUniqueId("unique#98765"); agency.setLodgingItineraryNumber("L123456"); agency.setLodgingPrepayDate(date); agency.setLodgingAmount(maxAmount); agency.setLodgingPrepayDaysNumber("365"); agency.setLodgingPropertyName("St. Regis Princeville Resort"); agency.setTripLodgingArrivalDate(date); agency.setLodgingDepartureDate(date); agency.setLodgingBookingDate(date); agency.setLodgingPropertyCityName("Princeville"); agency.setLodgingPropertyStateCode("HI"); agency.setLodgingCountryName("US"); agency.setRentalCarItineraryNumber("rentalCar1234"); agency.setRentalCarAmount(amount); agency.setRentalCarNumberOfDays("365"); agency.setRentalCarCompanyName("Hertz"); agency.setRentalCarOpenDate(date); agency.setRentalCarCloseDate(date); agency.setRentalCarFuelAmount(maxAmount); agency.setRentalCarAdditionalAmount(amount); agency.setRentalCarTaxAmount(maxAmount); agency.setRentalCarSurchargeAmount(amount); agency.setRentalCarGovernmentSurchargeAmount(maxAmount); agency.setRentalCarBillAmount(amount); agency.setRentalCarDetailText(longText); agency.setRegistrationCompanyName("Conference Co."); agency.setRegistrationAmount(maxAmount); agency.setTransactionPostingDate(date); agency.setObjectVerNumber("1"); agency.setCreationTimestamp(time); agency.setProcessingTimestamp(time); agency.setMoveToHistoryIndicator(true); businessObjectService.save(agency); Map<String, Object> values = new HashMap<String, Object>(); values.put("id", agency.getId()); List<AgencyStagingData> agencyDataList = (List<AgencyStagingData>) businessObjectService.findMatching(AgencyStagingData.class, values); try { AgencyStagingData data = agencyDataList.get(0); assertTrue(agency.getErrorCode().equals(data.getErrorCode())); assertTrue(agency.getAgencyDataId().equals(data.getAgencyDataId())); assertTrue(agency.getCreditCardOrAgencyCode().equals(data.getCreditCardOrAgencyCode())); assertTrue(agency.getAgency().equals(data.getAgency())); assertTrue(agency.getOtherCompanyName().equals(data.getOtherCompanyName())); assertTrue(agency.getAgencyFileName().equals(data.getAgencyFileName())); assertTrue(agency.getMerchantName().equals(data.getMerchantName())); assertTrue(agency.getBillingCycleDate().equals(data.getBillingCycleDate())); assertTrue(agency.getTripId().equals(data.getTripId())); assertTrue(agency.getTripInvoiceNumber().equals(data.getTripInvoiceNumber())); assertTrue(agency.getTripTravelerTypeId().equals(data.getTripTravelerTypeId())); assertTrue(agency.getOtherAmount().equals(data.getOtherAmount())); assertTrue(agency.getTravelerName().equals(data.getTravelerName())); assertTrue(agency.getTravelerId().equals(data.getTravelerId())); assertTrue(agency.getTravelerNetworkId().equals(data.getTravelerNetworkId())); assertTrue(agency.getTripExpenseAmount().equals(data.getTripExpenseAmount())); assertTrue(StringUtils.equals(agency.getAlternateTripId(), data.getAlternateTripId())); assertTrue(agency.getTripArrangerName().equals(data.getTripArrangerName())); ArrayList<TripAccountingInformation> accountingInfo = data.getTripAccountingInformation(); assertTrue(agency.getTripAccountingInformation().equals(accountingInfo)); for(TripAccountingInformation account : accountingInfo) { assertTrue(agency.getId().equals(account.getAgencyStagingDataId())); } assertTrue(agency.getGroupObjectCode().equals(data.getGroupObjectCode())); assertTrue(agency.getDistributionCode().equals(data.getDistributionCode())); assertTrue(agency.getTripDepartureDate().equals(data.getTripDepartureDate())); assertTrue(agency.getTripReturnDate().equals(data.getTripReturnDate())); assertTrue(agency.getFareSaverCode().equals(data.getFareSaverCode())); assertTrue(agency.getAirBookDate().equals(data.getAirBookDate())); assertTrue(agency.getAirCarrierCode().equals(data.getAirCarrierCode())); assertTrue(agency.getAirTicketNumber().equals(data.getAirTicketNumber())); assertTrue(agency.getPnrNumber().equals(data.getPnrNumber())); assertTrue(agency.getAirTicketClass().equals(data.getAirTicketClass())); assertTrue(agency.getAirTransactionAmount().equals(data.getAirTransactionAmount())); assertTrue(agency.getAirBaseFareAmount().equals(data.getAirBaseFareAmount())); assertTrue(agency.getAirTaxAmount().equals(data.getAirTaxAmount())); assertTrue(agency.getAirLowFareAmount().equals(data.getAirLowFareAmount())); assertTrue(agency.getAirReasonCode().equals(data.getAirReasonCode())); assertTrue(agency.getAirSegmentId().equals(data.getAirSegmentId())); assertTrue(agency.getAirDestinationCode().equals(data.getAirDestinationCode())); assertTrue(agency.getAirServiceFeeNumber().equals(data.getAirServiceFeeNumber())); assertTrue(agency.getAirServiceFeeAmount().equals(data.getAirServiceFeeAmount())); assertTrue(agency.getTransactionUniqueId().equals(data.getTransactionUniqueId())); assertTrue(agency.getLodgingItineraryNumber().equals(data.getLodgingItineraryNumber())); assertTrue(agency.getLodgingPrepayDate().equals(data.getLodgingPrepayDate())); assertTrue(agency.getLodgingAmount().equals(data.getLodgingAmount())); assertTrue(agency.getLodgingPrepayDaysNumber().equals(data.getLodgingPrepayDaysNumber())); assertTrue(agency.getLodgingPropertyName().equals(data.getLodgingPropertyName())); assertTrue(agency.getTripLodgingArrivalDate().equals(data.getTripLodgingArrivalDate())); assertTrue(agency.getLodgingDepartureDate().equals(data.getLodgingDepartureDate())); assertTrue(agency.getLodgingBookingDate().equals(data.getLodgingBookingDate())); assertTrue(agency.getLodgingPropertyCityName().equals(data.getLodgingPropertyCityName())); assertTrue(agency.getLodgingPropertyStateCode().equals(data.getLodgingPropertyStateCode())); assertTrue(agency.getLodgingCountryName().equals(data.getLodgingCountryName())); assertTrue(agency.getRentalCarItineraryNumber().equals(data.getRentalCarItineraryNumber())); assertTrue(agency.getRentalCarAmount().equals(data.getRentalCarAmount())); assertTrue(agency.getRentalCarNumberOfDays().equals(data.getRentalCarNumberOfDays())); assertTrue(agency.getRentalCarCompanyName().equals(data.getRentalCarCompanyName())); assertTrue(agency.getRentalCarOpenDate().equals(data.getRentalCarOpenDate())); assertTrue(agency.getRentalCarCloseDate().equals(data.getRentalCarCloseDate())); assertTrue(agency.getRentalCarFuelAmount().equals(data.getRentalCarFuelAmount())); assertTrue(agency.getRentalCarAdditionalAmount().equals(data.getRentalCarAdditionalAmount())); assertTrue(agency.getRentalCarTaxAmount().equals(data.getRentalCarTaxAmount())); assertTrue(agency.getRentalCarSurchargeAmount().equals(data.getRentalCarSurchargeAmount())); assertTrue(agency.getRentalCarGovernmentSurchargeAmount().equals(data.getRentalCarGovernmentSurchargeAmount())); assertTrue(agency.getRentalCarBillAmount().equals(data.getRentalCarBillAmount())); assertTrue(agency.getRentalCarDetailText().equals(data.getRentalCarDetailText())); assertTrue(agency.getRegistrationCompanyName().equals(data.getRegistrationCompanyName())); assertTrue(agency.getRegistrationAmount().equals(data.getRegistrationAmount())); assertTrue(agency.getTransactionPostingDate().equals(data.getTransactionPostingDate())); assertTrue(agency.getObjectVerNumber().equals(data.getObjectVerNumber())); assertTrue(agency.getCreationTimestamp().equals(data.getCreationTimestamp())); assertTrue(agency.getProcessingTimestamp().equals(data.getProcessingTimestamp())); assertTrue(agency.getMoveToHistoryIndicator()&&data.getMoveToHistoryIndicator()); } catch(Exception e){ e.printStackTrace(); assert(false); } } }