001    /**
002     * Copyright 2004-2012 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    }