001    /**
002     * Copyright 2005-2014 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.rice.krad.uif.field;
017    
018    import org.kuali.rice.krad.uif.component.Component;
019    import org.kuali.rice.krad.uif.element.Label;
020    import org.kuali.rice.krad.uif.element.Message;
021    import org.kuali.rice.krad.uif.service.ViewHelperService;
022    import org.kuali.rice.krad.uif.view.View;
023    
024    import org.junit.Test;
025    
026    import static junit.framework.Assert.*;
027    import static org.mockito.Mockito.*;
028    
029    /**
030     * test various FieldBase methods
031     * @author Kuali Rice Team (rice.collab@kuali.org)
032     */
033    public class FieldBaseTest {
034    
035        @Test
036        /**
037         * Tests rendering on required messages
038         *
039         * @see KULRICE-7130
040         */
041        public void testRequiredMessageDisplay() {
042    
043            // create mock objects for view, view helper service, model, and component
044            View mockView =  mock(View.class);
045            ViewHelperService mockViewHelperService = mock(ViewHelperService.class);
046            when(mockView.getViewHelperService()).thenReturn(mockViewHelperService);
047            Object nullModel = null;
048            Component mockComponent = mock(Component.class);
049    
050            // build asterisk required message and mock label to test rendering
051            Label mockLabel = mock(Label.class);
052    
053            Message requiredMessage = new Message();
054            requiredMessage.setMessageText("*");
055            requiredMessage.setRender(true);
056            when(mockLabel.getRequiredMessage()).thenReturn(requiredMessage);
057    
058            try {
059                FieldBase fieldBase = new FieldBase();
060                fieldBase.setFieldLabel(mockLabel);
061                fieldBase.setRequired(true);
062    
063                // required and not readonly - render
064                fieldBase.setReadOnly(false);
065                fieldBase.performFinalize(mockView, nullModel, mockComponent);
066                assertTrue(fieldBase.getFieldLabel().getRequiredMessage().isRender());
067    
068                // required and readonly -  do not render
069                fieldBase.setReadOnly(true);
070                fieldBase.performFinalize(mockView, nullModel, mockComponent);
071                assertFalse(fieldBase.getFieldLabel().getRequiredMessage().isRender());
072            } catch(Exception ex) {
073                fail("Unit Test Exception - " + ex.getMessage());
074            }
075        }
076    }