1 /** 2 * Copyright 2004-2013 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.hr.lm.balancetransfer.validation; 17 18 import static org.junit.Assert.*; 19 20 import java.util.HashMap; 21 22 import org.junit.After; 23 import org.junit.Before; 24 import org.junit.Test; 25 import org.kuali.hr.lm.balancetransfer.BalanceTransfer; 26 import org.kuali.hr.test.KPMETestCase; 27 import org.kuali.hr.time.clock.location.ClockLocationRule; 28 import org.kuali.hr.time.util.TKContext; 29 import org.kuali.rice.krad.service.BusinessObjectService; 30 import org.kuali.rice.krad.service.KRADServiceLocator; 31 32 public class BalanceTransferValidationTest extends KPMETestCase { 33 34 private BusinessObjectService boService; 35 36 @Before 37 public void setUp() throws Exception { 38 super.setUp(); 39 boService = KRADServiceLocator.getBusinessObjectService(); 40 clearBusinessObjects(BalanceTransfer.class); 41 } 42 43 @After 44 public void tearDown() throws Exception { 45 super.tearDown(); 46 } 47 48 @Test 49 public void testOverMaxCarryOver() throws Exception{ 50 assertTrue("Dummy assertion", true); 51 } 52 53 /* 54 @Test 55 public void testAtMaxCarryOver() throws Exception{ 56 assertTrue(true); 57 } 58 59 @Test 60 public void testUnderMaxBalanceBalanceTransfer() throws Exception{ 61 //ensure that balance transfer isn't triggered by accrual categories whose balance is 62 //less than the max balance. 63 //Exception could be balance transfers for termination/retirement where max balance 64 //is not yet reached. 65 assertTrue(true); 66 } 67 68 @Test 69 public void testOverMaxBalanceBalanceTransfer() throws Exception{ 70 assertTrue(true); 71 } 72 73 @Test 74 public void testAtMaxBalanceBalanceTransfer() throws Exception{ 75 assertTrue(true); 76 } 77 78 @Test 79 public void testBalanceTransferOfPartialFTE() throws Exception{ 80 //TODO: Balance transfer test of employee having more than one leave eligible job 81 // but whose FTE is less than one. 82 assertTrue(true); 83 } 84 85 @Test 86 public void testBalanceTransferOfPartialFTECase2() throws Exception{ 87 //TODO: Balance transfer test of employee having more than one leave eligible job 88 // and whose FTE is 1 89 assertTrue(true); 90 } 91 92 @Test 93 public void testBalanceTransferOfNonFTEEmployee() throws Exception{ 94 //TODO: Balance transfer should not be available for employee having no leave 95 // eligible job (FTE=0) 96 assertTrue(true); 97 } 98 */ 99 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 }