### Question:
AbstractNumberField extends CustomField<T> implements
        EagerValidateable, FieldEvents.TextChangeNotifier, FieldEvents.FocusNotifier, FieldEvents.BlurNotifier { public AbstractNumberField<T> withFocusListener(FocusListener listener) { addFocusListener(listener); return this; }  String getHtmlFieldType(); void setHtmlFieldType(String htmlFieldType); @Override void addTextChangeListener(
            FieldEvents.TextChangeListener listener); @Override void removeTextChangeListener(
            FieldEvents.TextChangeListener listener); @Override boolean isEagerValidation(); @Override void setEagerValidation(boolean eagerValidation); @Override void setEnabled(boolean enabled); @Override void setReadOnly(boolean readOnly); @Override void setWidth(float width, Unit unit); @Override void addBlurListener(BlurListener listener); @Override void removeBlurListener(BlurListener listener); @Override void addFocusListener(FocusListener listener); @Override void removeFocusListener(FocusListener listener); AbstractNumberField<T> withBlurListener(BlurListener listener); AbstractNumberField<T> withFocusListener(FocusListener listener);  }### Answer:
@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); }