001 /** 002 * Copyright 2005-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.krad.service; 017 018 import org.junit.Test; 019 import org.kuali.rice.krad.test.document.bo.Account; 020 import org.kuali.rice.krad.test.document.bo.AccountManager; 021 import org.kuali.rice.test.BaselineTestCase; 022 import org.kuali.rice.test.data.PerTestUnitTestData; 023 import org.kuali.rice.test.data.UnitTestData; 024 import org.kuali.rice.test.data.UnitTestFile; 025 import org.kuali.rice.test.data.UnitTestSql; 026 import org.kuali.rice.krad.test.KRADTestCase; 027 028 import java.util.Collection; 029 import java.util.HashMap; 030 import java.util.Map; 031 032 import static org.junit.Assert.assertEquals; 033 import static org.junit.Assert.assertTrue; 034 035 /** 036 * LookupServiceTest tests KULRICE-984: Lookups - Relative Limit Gap 037 * 038 * <p>Making sure that lookup resultSetLimits set in the DD for 039 * a BO will override the system wide default.</p> 040 * 041 * @author Kuali Rice Team (rice.collab@kuali.org) 042 */ 043 044 @PerTestUnitTestData( 045 value = @UnitTestData( 046 order = {UnitTestData.Type.SQL_STATEMENTS, UnitTestData.Type.SQL_FILES}, 047 sqlStatements = { 048 @UnitTestSql("delete from trv_acct where acct_fo_id between 101 and 301") 049 ,@UnitTestSql("delete from trv_acct_fo where acct_fo_id between 101 and 301") 050 }, 051 sqlFiles = { 052 @UnitTestFile(filename = "classpath:testAccountManagers.sql", delimiter = ";") 053 , @UnitTestFile(filename = "classpath:testAccounts.sql", delimiter = ";") 054 } 055 ), 056 tearDown = @UnitTestData( 057 sqlStatements = { 058 @UnitTestSql("delete from trv_acct where acct_fo_id between 101 and 301") 059 ,@UnitTestSql("delete from trv_acct_fo where acct_fo_id between 101 and 301") 060 } 061 ) 062 ) 063 @BaselineTestCase.BaselineMode(BaselineTestCase.Mode.NONE) 064 public class LookupServiceTest extends KRADTestCase { 065 066 public LookupServiceTest() {} 067 068 /** 069 * tests lookup return limits 070 * 071 * @throws Exception 072 */ 073 @Test 074 public void testLookupReturnLimits() throws Exception { 075 LookupService lookupService = KRADServiceLocatorWeb.getLookupService(); 076 Map formProps = new HashMap(); 077 Collection accountManagers = lookupService.findCollectionBySearchHelper(AccountManager.class, formProps, false); 078 assertEquals(90, accountManagers.size()); 079 080 accountManagers = null; 081 accountManagers = lookupService.findCollectionBySearch(AccountManager.class, formProps); 082 assertEquals(90, accountManagers.size()); 083 } 084 085 /** 086 * tests a lookup with the default limit 087 * 088 * @throws Exception 089 */ 090 @Test 091 public void testLookupReturnDefaultLimit() throws Exception { 092 LookupService lookupService = KRADServiceLocatorWeb.getLookupService(); 093 Map formProps = new HashMap(); 094 Collection travelAccounts = lookupService.findCollectionBySearchHelper(Account.class, formProps, false); 095 assertEquals(200, travelAccounts.size()); 096 097 travelAccounts = null; 098 travelAccounts = lookupService.findCollectionBySearch(Account.class, formProps); 099 assertEquals(200, travelAccounts.size()); 100 } 101 102 /** 103 * tests an unbounded lookup 104 * 105 * @throws Exception 106 */ 107 @Test 108 public void testLookupReturnDefaultUnbounded() throws Exception { 109 LookupService lookupService = KRADServiceLocatorWeb.getLookupService(); 110 Map formProps = new HashMap(); 111 Collection accountManagers = lookupService.findCollectionBySearchHelper(AccountManager.class, formProps, true); 112 int size = accountManagers.size(); 113 assertTrue("# of Fiscal Officers should be > 200", size > 200); 114 115 accountManagers = null; 116 accountManagers = lookupService.findCollectionBySearchUnbounded(AccountManager.class, formProps); 117 size = accountManagers.size(); 118 assertTrue("# of Fiscal Officers should be > 200", size > 200); 119 } 120 121 /** 122 * tests an unbounded lookup 123 * 124 * @throws Exception 125 */ 126 @Test 127 public void testLookupReturnDefaultUnbounded2() throws Exception { 128 LookupService lookupService = KRADServiceLocatorWeb.getLookupService(); 129 Map formProps = new HashMap(); 130 Collection travelAccounts = lookupService.findCollectionBySearchHelper(Account.class, formProps, true); 131 int size = travelAccounts.size(); 132 assertTrue("# of Travel Accounts should be > 200", size > 200); 133 134 travelAccounts = null; 135 travelAccounts = lookupService.findCollectionBySearchUnbounded(Account.class, formProps); 136 size = travelAccounts.size(); 137 assertTrue("# of Travel Accounts should be > 200", size > 200); 138 } 139 140 }