001 /** 002 * Copyright 2004-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.hr.lm.balancetransfer.validation; 017 018 import static org.junit.Assert.*; 019 020 import java.util.HashMap; 021 022 import org.junit.After; 023 import org.junit.Before; 024 import org.junit.Test; 025 import org.kuali.hr.lm.balancetransfer.BalanceTransfer; 026 import org.kuali.hr.test.KPMETestCase; 027 import org.kuali.hr.time.clock.location.ClockLocationRule; 028 import org.kuali.hr.time.util.TKContext; 029 import org.kuali.rice.krad.service.BusinessObjectService; 030 import org.kuali.rice.krad.service.KRADServiceLocator; 031 032 public class BalanceTransferValidationTest extends KPMETestCase { 033 034 private BusinessObjectService boService; 035 036 @Before 037 public void setUp() throws Exception { 038 super.setUp(); 039 boService = KRADServiceLocator.getBusinessObjectService(); 040 clearBusinessObjects(BalanceTransfer.class); 041 } 042 043 @After 044 public void tearDown() throws Exception { 045 super.tearDown(); 046 } 047 048 @Test 049 public void testOverMaxCarryOver() throws Exception{ 050 assertTrue("Dummy assertion", true); 051 } 052 053 /* 054 @Test 055 public void testAtMaxCarryOver() throws Exception{ 056 assertTrue(true); 057 } 058 059 @Test 060 public void testUnderMaxBalanceBalanceTransfer() throws Exception{ 061 //ensure that balance transfer isn't triggered by accrual categories whose balance is 062 //less than the max balance. 063 //Exception could be balance transfers for termination/retirement where max balance 064 //is not yet reached. 065 assertTrue(true); 066 } 067 068 @Test 069 public void testOverMaxBalanceBalanceTransfer() throws Exception{ 070 assertTrue(true); 071 } 072 073 @Test 074 public void testAtMaxBalanceBalanceTransfer() throws Exception{ 075 assertTrue(true); 076 } 077 078 @Test 079 public void testBalanceTransferOfPartialFTE() throws Exception{ 080 //TODO: Balance transfer test of employee having more than one leave eligible job 081 // but whose FTE is less than one. 082 assertTrue(true); 083 } 084 085 @Test 086 public void testBalanceTransferOfPartialFTECase2() throws Exception{ 087 //TODO: Balance transfer test of employee having more than one leave eligible job 088 // and whose FTE is 1 089 assertTrue(true); 090 } 091 092 @Test 093 public void testBalanceTransferOfNonFTEEmployee() throws Exception{ 094 //TODO: Balance transfer should not be available for employee having no leave 095 // eligible job (FTE=0) 096 assertTrue(true); 097 } 098 */ 099 100 // /** 101 // * Following tests should be moved to leave calendar to test on-demand balance transfers and payouts. 102 // */ 103 // @Test 104 // public void testOnDemandBalanceTransfer() throws Exception{ 105 // //TODO: Check to make sure that the "Transfer" button appears when max balance 106 // // is reached for a transfer with action frequency "On-Demand" and action "Transfer" 107 // // is in effect for accrual category. 108 // assertTrue(true); 109 // } 110 // 111 // @Test 112 // public void testOnDemandBalancePayout() throws Exception{ 113 // //TODO: Check to make sure that the "Payout" button appears when max balance 114 // // is reached for a transfer with action frequency "On-Demand" and action "payout" 115 // // is in effect for accrual category. 116 // assertTrue(true); 117 // } 118 // 119 // @Test 120 // public void testOnDemandBalanceTransferForMultipleAccrualCategories() throws Exception{ 121 // //TODO: Test that the "Transfer" button correctly displays when more than one accrual 122 // // category reach max balance simultaneously. 123 // assertTrue(true); 124 // } 125 // 126 // @Test 127 // public void testOnDemandBalancePayoutForMultipleAccrualCategories() throws Exception{ 128 // //TODO: Test that the "Payout" button displays correctly when more than one accrual 129 // // category reach max balance simultaneously. 130 // assertTrue(true); 131 // } 132 // 133 // /** 134 // * The following tests require setting up scenarios that occur on the set 135 // * of possible max balance action frequencies. The result of each test should 136 // * be dependent upon a balance transfer document correctly being created for each 137 // * scenario. 138 // */ 139 // @Test 140 // public void testLeaveApproveBalanceTransferService() throws Exception{ 141 // /** 142 // * TODO: Create the scenario where a balance TRANSFER should occur 143 // * on max balance action frequency of "leave approval". 144 // * Upon submitting a leave calendar document for approval, 145 // * the user should be prompted for approval of balance TRANSFER 146 // * according to the accrual categories max balance rules. 147 // * A successful test would check that, upon affirmative action by the 148 // * user, a balance transfer document should be created, and the 149 // * balances of the respective accrual categories should reflect 150 // * values in-line with the transfer AND accrual category rules. 151 // * (i.e. the max balance conversion factor ). 152 // */ 153 // assertTrue(true); 154 // } 155 // 156 // @Test 157 // public void testLeaveApprovalBalancePayoutService() throws Exception{ 158 // /** 159 // * TODO: Create the scenario where a balance PAYOUT should occur 160 // * on max balance action frequency of "leave approval". 161 // * Upon submitting a leave calendar document for approval, 162 // * the user should be prompted for approval of balance PAYOUT 163 // * according to the accrual categories max balance rules. 164 // * A successful test would check that, upon affirmative action by the 165 // * user, a balance transfer document is created, and the 166 // * balances of the respective accrual categories should reflect 167 // * values in-line with the transfer AND accrual category rules. 168 // * (i.e. the max balance conversion factor ). 169 // */ 170 // assertTrue(true); 171 // } 172 // 173 // @Test 174 // public void testYearEndBalanceTransferService() throws Exception{ 175 // /** 176 // * TODO: Create the scenario where a balance transfer should occur 177 // * on max balance action frequency of "YEAR END". 178 // * Upon submitting the final leave calendar document for approval, 179 // * the user should be prompted for approval of balance transfer 180 // * according to the accrual categories max balance rules. 181 // * A successful test would check that, upon affirmative action by the 182 // * user, a balance transfer document should be created, and the 183 // * balances of the respective accrual categories should reflect 184 // * values in-line with the transfer AND accrual category rules. 185 // * (i.e. the max balance conversion factor ). 186 // */ 187 // assertTrue(true); 188 // } 189 // 190 // @Test 191 // public void testYearEndBalancePayoutService() throws Exception { 192 // /** 193 // * TODO: Create the scenario where a balance PAYOUT should occur 194 // * on max balance action frequency of "YEAR END". 195 // * Upon submitting a leave calendar document for approval, 196 // * the user should be prompted for approval of balance PAYOUT 197 // * according to the accrual categories max balance rules. 198 // * A successful test would check that, upon affirmative action by the 199 // * user, a balance transfer document should be created, and the 200 // * balances of the respective accrual categories should reflect 201 // * values in-line with the transfer AND accrual category rules. 202 // * (i.e. the max balance conversion factor ). 203 // * For successful payout, the test must check that a new, previously defined earn code 204 // * should exist for the user, and that this earn code is available for use. 205 // */ 206 // assertTrue(true); 207 // } 208 209 @SuppressWarnings("unchecked") 210 public void clearBusinessObjects(Class clazz) { 211 boService.deleteMatching(clazz, new HashMap()); 212 } 213 }