package org.vaadin.viritin.v7.fields; import org.vaadin.viritin.v7.fields.AbstractNumberField; import com.vaadin.event.FieldEvents.BlurEvent; import com.vaadin.event.FieldEvents.BlurListener; import com.vaadin.event.FieldEvents.FocusEvent; import com.vaadin.event.FieldEvents.FocusListener; import static org.junit.Assert.*; import com.vaadin.v7.event.FieldEvents; import org.junit.Before; import org.junit.Test; import java.util.Collection; /** * org.vaadin.viritin.fields.AbstractNumberFieldTest, created on 17/01/2017 15:39 <p> * * @author Charles */ public class AbstractNumberFieldTest { public static final BlurListener BLUR_LISTENER = event -> { /* NO-OP */ }; public static final FocusListener FOCUS_LISTENER = event -> { /* NO-OP */ }; protected ExampleField field; @Before public void setUp() throws Exception { field = new ExampleField(); } @Test public void addAndRemoveBlurListener() { // Try both add remove a BlurListener, and ,ake sure they get delegated to the textfield assertTrue(field.tf.getListeners(BlurEvent.class).isEmpty()); field.addBlurListener(BLUR_LISTENER); Collection<?> listeners = field.tf.getListeners(BlurEvent.class); assertEquals(1, listeners.size()); assertEquals(BLUR_LISTENER, listeners.iterator().next()); field.removeBlurListener(BLUR_LISTENER); assertTrue(field.tf.getListeners(BlurEvent.class).isEmpty()); } @Test public void addAndRemoveListenerWithMethodOverload() { // Try both add remove a BlurListener via add/removeListener, and make sure they get delegated to the textfield assertTrue(field.tf.getListeners(BlurEvent.class).isEmpty()); field.addBlurListener(BLUR_LISTENER); Collection<?> listeners = field.tf.getListeners(BlurEvent.class); assertEquals(1, listeners.size()); assertEquals(BLUR_LISTENER, listeners.iterator().next()); field.removeBlurListener(BLUR_LISTENER); assertTrue(field.tf.getListeners(BlurEvent.class).isEmpty()); } @Test public void addAndRemoveFocusListener() { // Try both add remove a FocusListener, and ,ake sure they get delegated to the textfield assertTrue(field.tf.getListeners(FocusEvent.class).isEmpty()); field.addFocusListener(FOCUS_LISTENER); Collection<?> listeners = field.tf.getListeners(FocusEvent.class); assertEquals(1, listeners.size()); assertEquals(FOCUS_LISTENER, listeners.iterator().next()); field.removeFocusListener(FOCUS_LISTENER); assertTrue(field.tf.getListeners(FocusEvent.class).isEmpty()); } @Test public void addAndRemoveFocusListenerWithMethodOverload() { // Try both add remove a FocusListener, and ,ake sure they get delegated to the textfield assertTrue(field.tf.getListeners(FocusEvent.class).isEmpty()); field.addFocusListener(FOCUS_LISTENER); Collection<?> listeners = field.tf.getListeners(FocusEvent.class); assertEquals(1, listeners.size()); assertEquals(FOCUS_LISTENER, listeners.iterator().next()); field.removeFocusListener(FOCUS_LISTENER); assertTrue(field.tf.getListeners(FocusEvent.class).isEmpty()); } @Test public void withFocusListener() { assertTrue(field.tf.getListeners(FocusEvent.class).isEmpty()); AbstractNumberField<Integer> fluid = field.withFocusListener(FOCUS_LISTENER); Collection<?> listeners = field.tf.getListeners(FocusEvent.class); assertEquals(1, listeners.size()); assertEquals(FOCUS_LISTENER, listeners.iterator().next()); assertSame(field, fluid); } public class ExampleField extends AbstractNumberField<Integer> { protected void userInputToValue(String str) { // No-Op } public Class<? extends Integer> getType() { return Integer.class; } } }