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.richclient.core;
017
018 import java.awt.event.KeyEvent;
019 import java.beans.PropertyChangeEvent;
020 import java.beans.PropertyChangeListener;
021
022 import javax.swing.KeyStroke;
023
024 import junit.framework.TestCase;
025
026 import org.easymock.EasyMock;
027 import org.springframework.richclient.command.config.CommandButtonLabelInfo;
028
029 /**
030 * Testcase for LabeledObjectSupport
031 *
032 * @author Peter De Bruycker
033 */
034 public class LabeledObjectSupportTests extends TestCase {
035
036 public void testSetTitle() {
037 LabeledObjectSupport support = new LabeledObjectSupport();
038
039 PropertyChangeListener mockPropertyChangeListener = (PropertyChangeListener) EasyMock
040 .createMock(PropertyChangeListener.class);
041
042 mockPropertyChangeListener.propertyChange(eqPropertyChangeEvent(new PropertyChangeEvent(support,
043 LabeledObjectSupport.DISPLAY_NAME_PROPERTY, null, "new title")));
044 support.addPropertyChangeListener(LabeledObjectSupport.DISPLAY_NAME_PROPERTY, mockPropertyChangeListener);
045
046 EasyMock.replay(mockPropertyChangeListener);
047
048 support.setTitle("new title");
049
050 EasyMock.verify(mockPropertyChangeListener);
051 }
052
053 public void testGetDisplayName() {
054 LabeledObjectSupport support = new LabeledObjectSupport();
055 assertEquals("displayName", support.getDisplayName());
056
057 support.setTitle("title");
058 assertEquals("title", support.getDisplayName());
059
060 support.setLabelInfo(new CommandButtonLabelInfo("label info"));
061 assertEquals("title", support.getDisplayName());
062
063 support.setTitle(null);
064 assertEquals("label info", support.getDisplayName());
065 }
066
067 public void testSetLabelInfo() {
068 LabeledObjectSupport support = new LabeledObjectSupport();
069
070 CommandButtonLabelInfo labelInfo = CommandButtonLabelInfo.valueOf("&Save@control S");
071
072 PropertyChangeListener mockPropertyChangeListener = (PropertyChangeListener) EasyMock
073 .createMock(PropertyChangeListener.class);
074
075 mockPropertyChangeListener.propertyChange(eqPropertyChangeEvent(new PropertyChangeEvent(support,
076 LabeledObjectSupport.DISPLAY_NAME_PROPERTY, null, "Save")));
077 mockPropertyChangeListener.propertyChange(eqPropertyChangeEvent(new PropertyChangeEvent(support,
078 "mnemonic", Integer.valueOf(0), Integer.valueOf('S'))));
079 mockPropertyChangeListener.propertyChange(eqPropertyChangeEvent(new PropertyChangeEvent(support,
080 "accelerator", null, KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK))));
081 support.addPropertyChangeListener(mockPropertyChangeListener);
082
083 EasyMock.replay(mockPropertyChangeListener);
084
085 support.setLabelInfo(labelInfo);
086
087 EasyMock.verify(mockPropertyChangeListener);
088 }
089
090 public static PropertyChangeEvent eqPropertyChangeEvent(PropertyChangeEvent expected) {
091 EasyMock.reportMatcher(new PropertyChangeEventArgumentMatcher(expected));
092
093 return null;
094 }
095 }