001    /*
002     * Copyright 2002-2007 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
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, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.binding.form.support;
017    
018    import java.awt.Color;
019    import java.util.Locale;
020    
021    import javax.swing.Icon;
022    
023    import org.easymock.EasyMock;
024    import org.springframework.binding.form.FieldFace;
025    import org.springframework.context.support.MessageSourceAccessor;
026    import org.springframework.context.support.StaticMessageSource;
027    import org.springframework.richclient.image.IconSource;
028    import org.springframework.richclient.test.SpringRichTestCase;
029    import org.springframework.richclient.test.TestIcon;
030    
031    /**
032     * Testcase for MessageSourceFieldFaceSource
033     * 
034     * @author Peter De Bruycker
035     */
036    public class MessageSourceFieldFaceSourceTests extends SpringRichTestCase {
037    
038            public void testLoadFieldFace() {
039                    Icon testIcon = new TestIcon(Color.RED);
040    
041                    MessageSourceFieldFaceSource fieldFaceSource = new MessageSourceFieldFaceSource();
042    
043                    StaticMessageSource messageSource = new StaticMessageSource();
044                    messageSource.addMessage("context.field.caption", Locale.getDefault(), "the caption");
045                    messageSource.addMessage("context.field.description", Locale.getDefault(), "the description");
046                    messageSource.addMessage("context.field.label", Locale.getDefault(), "the label");
047                    messageSource.addMessage("context.field.icon", Locale.getDefault(), "iconName");
048                    fieldFaceSource.setMessageSourceAccessor(new MessageSourceAccessor(messageSource));
049    
050                    IconSource mockIconSource = (IconSource) EasyMock.createMock(IconSource.class);
051                    EasyMock.expect(mockIconSource.getIcon("iconName")).andReturn(testIcon);
052                    EasyMock.replay(mockIconSource);
053    
054                    fieldFaceSource.setIconSource(mockIconSource);
055    
056                    FieldFace face = fieldFaceSource.loadFieldFace("field", "context");
057    
058                    assertEquals("the caption", face.getCaption());
059                    assertEquals("the label", face.getDisplayName());
060                    assertEquals("the description", face.getDescription());
061    
062                    assertEquals(testIcon, face.getIcon());
063    
064                    EasyMock.verify(mockIconSource);
065            }
066    
067    }