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