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.department.lunch.rule;
017 import org.junit.Assert;
018 import org.junit.Test;
019 import org.kuali.hr.test.KPMETestCase;
020 import org.kuali.hr.time.test.HtmlUnitUtil;
021 import org.kuali.hr.time.test.TkTestConstants;
022
023 import com.gargoylesoftware.htmlunit.html.HtmlInput;
024 import com.gargoylesoftware.htmlunit.html.HtmlPage;
025
026 public class DepartmentLunchRuleMaintTest extends KPMETestCase {
027
028 private static final String TEST_CODE = "admin";
029 private static String TEST_CODE_DEPT_INVALID = "INVALID";
030 private static Long TEST_CODE_WORKAREA_INVALID = 9999L;
031
032 private static Long deptLunchRuleIdWithInvalidDept = 1L;
033 private static Long deptLunchRuleIdWithInvalidWorkArea = 3L;
034
035 /**
036 * Test to check whether it is showing error message for Department on maintenance screen
037 * if we supply non exist deptId
038 *
039 * @throws Exception
040 */
041 @Test
042 public void testDepartmentLunchRuleMaintForDeptErrorMessage()
043 throws Exception {
044 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil
045 .gotoPageAndLogin(TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL);
046 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText(
047 departmentLunchRuleLookUp, "search");
048 Assert.assertTrue("Page contains test DepartmentLunchRule",
049 departmentLunchRuleLookUp.asText().contains(TEST_CODE));
050 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText(
051 departmentLunchRuleLookUp, "edit",
052 deptLunchRuleIdWithInvalidDept.toString());
053 HtmlInput inputForDept = HtmlUnitUtil.getInputContainingText(maintPage,
054 TEST_CODE_DEPT_INVALID);
055 inputForDept.setValueAttribute(TEST_CODE_DEPT_INVALID);
056 HtmlInput inputForDescription = HtmlUnitUtil.getInputContainingText(
057 maintPage, "* Document Description");
058 inputForDescription.setValueAttribute("Description");
059 HtmlPage resultantPageAfterEdit = HtmlUnitUtil
060 .clickInputContainingText(maintPage, "submit");
061 System.out.println(resultantPageAfterEdit.asText());
062 Assert.assertTrue("Maintenance Page contains error message for dept",
063 resultantPageAfterEdit.asText().contains(
064 "The specified department '" + TEST_CODE_DEPT_INVALID
065 + "' does not exist."));
066 }
067
068 /**
069 * Test to check whether it is showing error message for WorkArea on maintenance screen
070 * if we supply non exist workArea
071 *
072 * @throws Exception
073 */
074 @Test
075 public void testDepartmentLunchRuleMaintForWorkAreaErrorMessage()
076 throws Exception {
077 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil
078 .gotoPageAndLogin(TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL);
079 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText(
080 departmentLunchRuleLookUp, "search");
081 Assert.assertTrue("Page contains test DepartmentLunchRule",
082 departmentLunchRuleLookUp.asText().contains(TEST_CODE));
083 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText(
084 departmentLunchRuleLookUp, "edit",
085 deptLunchRuleIdWithInvalidWorkArea.toString());
086 HtmlUnitUtil.createTempFile(maintPage);
087
088 HtmlInput inputForWorkArea = HtmlUnitUtil.getInputContainingText(maintPage,
089 "newMaintainableObject.workArea");
090 inputForWorkArea.setValueAttribute(Long.toString(TEST_CODE_WORKAREA_INVALID));
091 HtmlInput inputForDescription = HtmlUnitUtil.getInputContainingText(
092 maintPage, "* Document Description");
093 inputForDescription.setValueAttribute("Description");
094 HtmlPage resultantPageAfterEdit = HtmlUnitUtil
095 .clickInputContainingText(maintPage, "submit");
096 HtmlUnitUtil.createTempFile(resultantPageAfterEdit);
097 Assert.assertTrue("Maintenance Page contains contains error message for workarea",
098 resultantPageAfterEdit.asText().contains(
099 "The specified workArea '" + TEST_CODE_WORKAREA_INVALID
100 + "' does not exist."));
101 }
102
103 @Test
104 public void testDepartmentLunchRuleMaintForMaxShiftHourErrorMessage() throws Exception {
105 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil
106 .gotoPageAndLogin(TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL);
107 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText(
108 departmentLunchRuleLookUp, "search");
109 Assert.assertTrue("Page contains test DepartmentLunchRule",
110 departmentLunchRuleLookUp.asText().contains(TEST_CODE));
111 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText(
112 departmentLunchRuleLookUp, "edit",
113 deptLunchRuleIdWithInvalidWorkArea.toString());
114
115 setFieldValue(maintPage, TkTestConstants.DOC_NEW_ELEMENT_ID_PREFIX + "shiftHours", "34");
116 setFieldValue(maintPage, "document.documentHeader.documentDescription", "test");
117 HtmlPage resultantPageAfterEdit = HtmlUnitUtil.clickInputContainingText(maintPage, "submit");
118 HtmlUnitUtil.createTempFile(resultantPageAfterEdit);
119 Assert.assertTrue("Maintenance Page contains contains error message for Shift Hours",
120 resultantPageAfterEdit.asText().contains("Shift Hour cannot be greater than 24."));
121 }
122
123 @Test
124 public void testDepartmentLunchRuleMaint() throws Exception {
125 HtmlPage departmentLunchRuleLookUp = HtmlUnitUtil
126 .gotoPageAndLogin(TkTestConstants.Urls.DEPT_LUNCH_RULE_MAINT_URL);
127 departmentLunchRuleLookUp = HtmlUnitUtil.clickInputContainingText(
128 departmentLunchRuleLookUp, "search");
129 Assert.assertTrue("Page contains test DepartmentLunchRule",
130 departmentLunchRuleLookUp.asText().contains(
131 TEST_CODE.toString()));
132 HtmlPage maintPage = HtmlUnitUtil.clickAnchorContainingText(
133 departmentLunchRuleLookUp, "edit",
134 deptLunchRuleIdWithInvalidDept.toString());
135 Assert.assertTrue("Maintenance Page contains test DepartmentLunchRule",
136 maintPage.asText().contains(TEST_CODE.toString()));
137 }
138 }