1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.kuali.hr.time.overtime.weekly;
17  
18  import java.math.BigDecimal;
19  
20  import org.joda.time.LocalDate;
21  import org.junit.Assert;
22  import org.junit.Test;
23  import org.kuali.hr.KPMEWebTestCase;
24  import org.kuali.hr.util.HtmlUnitUtil;
25  import org.kuali.kpme.core.FunctionalTest;
26  import org.kuali.kpme.core.util.TKUtils;
27  import org.kuali.kpme.tklm.time.rules.overtime.weekly.WeeklyOvertimeRule;
28  import org.kuali.kpme.tklm.utils.TkTestConstants;
29  import org.kuali.rice.krad.service.KRADServiceLocator;
30  
31  import com.gargoylesoftware.htmlunit.html.HtmlElement;
32  import com.gargoylesoftware.htmlunit.html.HtmlPage;
33  import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
34  
35  @FunctionalTest
36  public class WeeklyOvertimeRuleMaintenanceTest extends KPMEWebTestCase {
37  	
38  	protected static final String TEST_CODE="TST";
39  	private static final BigDecimal TEST_NO=new BigDecimal(10);
40  	private static String weeklyOvertimeRuleId;	
41  	private static final LocalDate TEST_DATE = LocalDate.now();
42  	
43  	@Test
44  	public void testWeeklyOvertimeRuleMaint() throws Exception {
45  		HtmlPage maintPage = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.WEEKLY_OVERTIME_RULE_MAINT_URL);
46  		Assert.assertTrue("Maintenance Page contains test WeeklyOvertimeRule",maintPage.asText().contains(TEST_CODE));
47  		
48  		
49  		HtmlPage newMaintPage = HtmlUnitUtil.gotoPageAndLogin(getWebClient(), TkTestConstants.Urls.WEEKLY_OVERTIME_RULE_MAINT_NEW_URL);
50  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.documentHeader.documentDescription", "Test");
51  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.effectiveDate", "01/01/2010");
52  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.maxHoursEarnGroup", "REG");
53  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.convertFromEarnGroup", "OVT");
54  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.convertToEarnCode", "RGN");
55  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.step", "1");
56  		HtmlUnitUtil.setFieldValue(newMaintPage, "document.newMaintainableObject.add.lstWeeklyOvertimeRules.maxHours", "8");
57  
58  		HtmlElement element = (HtmlElement)newMaintPage.getElementById("methodToCall.addLine.lstWeeklyOvertimeRules.(!!org.kuali.kpme.tklm.time.rules.overtime.weekly.WeeklyOvertimeRule!!)");
59          HtmlPage finalPage = element.click();
60  		Assert.assertTrue("Maintenance Page should contains EarnCodeGroup has overtime earn code error",
61  				finalPage.asText().contains("Earn Group 'OVT' has overtime earn codes."));
62  	}
63  
64  	@Override
65  	public void setUp() throws Exception {
66  		super.setUp();
67  		WeeklyOvertimeRule weeklyOvertimeRule = new WeeklyOvertimeRule();
68  		weeklyOvertimeRule.setActive(true);
69  		weeklyOvertimeRule.setConvertFromEarnGroup(TEST_CODE);
70  		weeklyOvertimeRule.setConvertToEarnCode(TEST_CODE);
71  		weeklyOvertimeRule.setEffectiveLocalDate(TEST_DATE);
72  		weeklyOvertimeRule.setMaxHours(TEST_NO);
73  		weeklyOvertimeRule.setMaxHoursEarnGroup(TEST_CODE);
74  		weeklyOvertimeRule.setStep(TEST_NO);
75  		weeklyOvertimeRule.setTimestamp(TKUtils.getCurrentTimestamp());
76  		weeklyOvertimeRule.setUserPrincipalId(TEST_CODE);	
77  		KRADServiceLocatorWeb.getLegacyDataAdapter().save(weeklyOvertimeRule);
78  		weeklyOvertimeRuleId=weeklyOvertimeRule.getTkWeeklyOvertimeRuleId();		
79  	}
80  
81  	@Override
82  	public void tearDown() throws Exception {	
83  		
84  		WeeklyOvertimeRule weeklyOvertimeRuleObj= KRADServiceLocatorWeb.getLegacyDataAdapter().findBySinglePrimaryKey(WeeklyOvertimeRule.class, weeklyOvertimeRuleId);
85  		KRADServiceLocatorWeb.getLegacyDataAdapter().delete(weeklyOvertimeRuleObj);
86  		super.tearDown();
87  	}
88  
89  }