package com.vaadin.tests.server.component.label; import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.createStrictMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import org.easymock.EasyMock; import org.junit.Test; import com.vaadin.tests.server.component.AbstractListenerMethodsTestBase; import com.vaadin.v7.data.Property; import com.vaadin.v7.data.Property.ValueChangeListener; import com.vaadin.v7.ui.Label; import com.vaadin.v7.ui.Label.ValueChangeEvent; public class LabelListenersTest extends AbstractListenerMethodsTestBase { @Test public void testValueChangeListenerAddGetRemove() throws Exception { testListenerAddGetRemove(Label.class, ValueChangeEvent.class, ValueChangeListener.class); } @Test public void testValueChangeFiredWhenSettingValue() { Label underTest = new Label(); // setup the mock listener ValueChangeListener mockListener = createStrictMock( ValueChangeListener.class); // record mockListener.valueChange(anyObject(ValueChangeEvent.class)); // test underTest.addValueChangeListener(mockListener); replay(mockListener); underTest.setValue("A new value"); verify(mockListener); } @Test public void testValueChangeFiredWhenSettingPropertyDataSource() { // setup Label underTest = new Label(); Property mockProperty = EasyMock.createMock(Property.class); ValueChangeListener mockListener = createStrictMock( ValueChangeListener.class); // record mockListener.valueChange(anyObject(ValueChangeEvent.class)); expect(mockProperty.getType()).andReturn(String.class).atLeastOnce(); expect(mockProperty.getValue()).andReturn("Any").atLeastOnce(); // test replay(mockListener, mockProperty); underTest.addValueChangeListener(mockListener); underTest.setPropertyDataSource(mockProperty); verify(mockListener); } @Test public void testValueChangeNotFiredWhenNotSettingValue() { Label underTest = new Label(); // setup the mock listener ValueChangeListener mockListener = createStrictMock( ValueChangeListener.class); // record: nothing to record // test underTest.addValueChangeListener(mockListener); replay(mockListener); verify(mockListener); } @Test public void testNoValueChangeFiredWhenSettingPropertyDataSourceToNull() { Label underTest = new Label(); // setup the mock Listener ValueChangeListener mockListener = createStrictMock( ValueChangeListener.class); // record: nothing to record // test underTest.addValueChangeListener(mockListener); underTest.setPropertyDataSource(null); replay(mockListener); verify(mockListener); } }