/* * 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.service; import java.sql.Date; import java.util.HashMap; import java.util.List; import org.junit.Test; import org.kuali.kfs.module.tem.TemConstants; import org.kuali.kfs.module.tem.TemKeyConstants; import org.kuali.kfs.module.tem.businessobject.TemProfile; import org.kuali.kfs.module.tem.businessobject.TravelerType; 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.kns.datadictionary.validation.fieldlevel.PhoneNumberValidationPattern; import org.kuali.rice.krad.service.BusinessObjectService; import org.kuali.rice.krad.service.SequenceAccessorService; /** * * This class tests the TravelService class */ @ConfigureContext public class TravelServiceTest extends KualiTestBase{ private TravelService travelService; private DateTimeService dateTimeService; private static final int ONE_DAY = 86400; private BusinessObjectService businessObjectService; private SequenceAccessorService sas; @Override protected void setUp() throws Exception { super.setUp(); final TravelService travelServiceTemp = SpringContext.getBean(TravelService.class); businessObjectService = SpringContext.getBean(BusinessObjectService.class); sas = SpringContext.getBean(SequenceAccessorService.class); travelService = SpringContext.getBean(TravelService.class); dateTimeService = SpringContext.getBean(DateTimeService.class); } /** * * This method tests {@link TravelService#validatePhoneNumber(String)} */ @Test public void testValidatePhoneNumber_byPhoneNumber() { assertTrue(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber(null, TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("123-555-1234", TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("123-555-1234 x1234", TemKeyConstants.ERROR_PHONE_NUMBER))); } /** * * This method tests {@link TravelService#validatePhoneNumber(String, String)} */ @Test public void testValidatePhoneNumber_byCountryCodeAndPhoneNumber() { // validate International phone numbers assertTrue(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber(null,null,TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("UK","555-1234",TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("UK","555-1234 x1234",TemKeyConstants.ERROR_PHONE_NUMBER))); // validate US phone numbers PhoneNumberValidationPattern pattern = new PhoneNumberValidationPattern(); assertTrue(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("US","1",TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("US","123-555-1234",TemKeyConstants.ERROR_PHONE_NUMBER))); assertFalse(TemKeyConstants.ERROR_PHONE_NUMBER.equals(travelService.validatePhoneNumber("US","123-555-1234 x1234",TemKeyConstants.ERROR_PHONE_NUMBER))); } /** * * This method tests {@link TravelService#findTemProfileByPrincipalId(String)} */ @Test public void testFindTemProfileByPrincipalId() { TemProfile profile = new TemProfile(); Integer newProfileId = sas.getNextAvailableSequenceNumber(TemConstants.TEM_PROFILE_SEQ_NAME).intValue(); profile.setProfileId(newProfileId); profile.getTemProfileAddress().setProfileId(newProfileId); profile.setCustomerNumber("555555555"); profile.setPrincipalId("66666666"); profile.setDateOfBirth(new Date(Date.parse("03/03/1975"))); profile.setCitizenship("United States"); profile.setDriversLicenseExpDate(new Date(Date.parse("03/03/2014"))); profile.setDriversLicenseNumber("B43212345"); profile.setUpdatedBy("jamey"); profile.setLastUpdate(new Date(Date.parse("03/03/2011"))); profile.setGender("M"); profile.setNonResidentAlien(false); profile.setHomeDeptChartOfAccountsCode("UA"); profile.setHomeDeptOrgCode("VPIT"); List<TravelerType> travelerTypes = (List<TravelerType>) businessObjectService.findMatching(TravelerType.class, new HashMap<String, Object>()); profile.setTravelerType(travelerTypes.get(0)); profile.setTravelerTypeCode(profile.getTravelerType().getCode()); profile.setProfileId(-1); businessObjectService.save(profile); profile = travelService.findTemProfileByPrincipalId("-1"); assertNull(profile); profile = travelService.findTemProfileByPrincipalId("66666666"); assertNotNull(profile); } }