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.time.util; 017 018 import java.math.BigDecimal; 019 import java.sql.Date; 020 import java.util.Map; 021 import java.util.ArrayList; 022 import java.util.List; 023 024 import org.joda.time.DateTime; 025 import org.junit.Assert; 026 import org.junit.Test; 027 import org.kuali.hr.lm.leaveblock.LeaveBlock; 028 import org.kuali.hr.test.KPMETestCase; 029 import org.kuali.hr.time.detail.web.ActionFormUtils; 030 import org.kuali.hr.time.earncode.EarnCode; 031 import org.kuali.hr.time.service.base.TkServiceLocator; 032 import org.kuali.hr.time.test.TkTestUtils; 033 import org.kuali.hr.time.timesheet.TimesheetDocument; 034 035 public class ActionFormUtilsTest extends KPMETestCase { 036 037 @Test 038 public void testBuildAssignmentStyleClassMap() { 039 Date aDate = new Date((new DateTime(2011, 7, 7, 0, 0, 0, 0, TKUtils.getSystemDateTimeZone())).getMillis()); 040 TimesheetDocument doc = TkTestUtils.populateTimesheetDocument(aDate); 041 Map<String, String> aMap = ActionFormUtils.buildAssignmentStyleClassMap(doc.getTimeBlocks()); 042 Assert.assertEquals("Wrong number of classes in style class map", 1, aMap.size()); 043 Assert.assertEquals("Wrong key for class assignment0", "assignment0", aMap.get("1_1234_1")); 044 } 045 046 @Test 047 public void testGetUnitOfTimeForEarnCode() throws Exception { 048 // earn code with an existing Accrual category 049 EarnCode earnCode = TkServiceLocator.getEarnCodeService().getEarnCodeById("5000"); 050 String unitOfTime = ActionFormUtils.getUnitOfTimeForEarnCode(earnCode); 051 Assert.assertTrue("Unit of Time should be 'D', not " + unitOfTime, unitOfTime.equals("D")); 052 // earn code without an existing accrual category 053 earnCode = TkServiceLocator.getEarnCodeService().getEarnCodeById("5002"); 054 unitOfTime = ActionFormUtils.getUnitOfTimeForEarnCode(earnCode); 055 Assert.assertTrue("Unit of Time should be 'H', not " + unitOfTime, unitOfTime.equals("H")); 056 057 } 058 059 @Test 060 public void testGetLeaveBlocksJson() { 061 List<LeaveBlock> lbList = new ArrayList<LeaveBlock>(); 062 LeaveBlock lb = new LeaveBlock(); 063 lb.setAssignmentTitle("testAssignment"); 064 lb.setAssignmentKey("0-123-0"); 065 lb.setEarnCode("EarnCode"); 066 lb.setLmLeaveBlockId("1111"); 067 lb.setLeaveAmount(new BigDecimal(3)); 068 lb.setLeaveDate(new Date((new DateTime(2012, 2, 20, 0, 0, 0, 0, TKUtils.getSystemDateTimeZone())).getMillis())); 069 lb.setAccrualGenerated(false); 070 lbList.add(lb); 071 072 String jsonString = ActionFormUtils.getLeaveBlocksJson(lbList); 073 String expectedString = "[{\"title\":\"\",\"assignment\":\"0-123-0\",\"earnCode\":\"EarnCode\",\"lmLeaveBlockId\":\"1111\",\"leaveAmount\":\"3\",\"leaveDate\":\"02\\/20\\/2012\",\"id\":\"1111\",\"canTransfer\":false}]"; 074 Assert.assertTrue("Leave Block Json should include assignment", jsonString.equals(expectedString)); 075 076 077 } 078 079 080 }