Class NumberFieldTester<T extends AbstractNumberField<T,V>,V extends Number>
- Type Parameters:
T- component typeV- value type
- All Implemented Interfaces:
Clickable<T>
- Since:
- 1.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Empties the field, as when the user deletes its contents (or clicks the clear button, where one is shown).voidEmpties the field by clicking its clear button, as the user would.booleanisValid()Checks whether the field is currently valid, running the component's own default validator ? required, min, max and, when it is explicitly set, the step scale ? and honouring an invalid state set from the outside, as aBinderor a custom validator does.voidSet the given value for the component, as the user would type it.voidstepDown()Simulates the user clicking the step down button once.voidstepDown(int times) Simulates the user clicking the step down button the given number of times.voidstepUp()Simulates the user clicking the step up button once.voidstepUp(int times) Simulates the user clicking the step up button the given number of times.Methods inherited from class com.vaadin.browserless.ComponentTester
canSetValueAsUser, clearAsUser, clickClearButtonAsUser, ensureComponentIsUsable, ensureComponentIsUsable, ensureComponentIsUsableOrDetach, ensureVisible, ensureVisible, find, findAllByQuery, findByQuery, fireDomEvent, fireDomEvent, fireDomEvent, getComponent, getField, getField, getMethod, getMethod, isComponentReadOnly, isUsable, isUsable, notUsableReasons, notUsableReasons, roundTrip, setModal, setPropertyAsUser, setValueAsUser, setValueAsUserMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.browserless.Clickable
click, click, click, middleClick, middleClick, rightClick, rightClick
-
Constructor Details
-
NumberFieldTester
Wrap given component for testing.- Parameters:
component- target component
-
-
Method Details
-
setValue
Set the given value for the component, as the user would type it. A value that violates the component's constraints ? outside min - max, off the step scale, or the empty value on a required field ? is committed all the same, because the browser commits it too and simply leaves the field invalid. Assert that outcome withisValid()instead of expecting this method to throw.- Parameters:
value- value to set- Throws:
IllegalStateException- if the component is not usable
-
clear
public void clear()Empties the field, as when the user deletes its contents (or clicks the clear button, where one is shown). Emptying is something the user can always do, so it needs no clear button: a field may legitimately end up invalid ? a required field, for instance ? once emptied.- Throws:
IllegalStateException- if the component is not usable
-
clickClearButton
public void clickClearButton()Empties the field by clicking its clear button, as the user would. Unlikeclear(), which models selecting the contents and deleting them and is therefore always available, this requires the clear button to be visible ? a hidden clear button is not something the user can click.- Throws:
IllegalStateException- if the component is not usable, or its clear button is not visible
-
isValid
public boolean isValid()Checks whether the field is currently valid, running the component's own default validator ? required, min, max and, when it is explicitly set, the step scale ? and honouring an invalid state set from the outside, as aBinderor a custom validator does.A field can hold a value that does not satisfy its constraints ? the user can type one,
setValue(Number)commits it as the browser does, and the value can also be set on the server or stepped from an unaligned value ? so a test asserting on validation state checks this instead of expecting a value to be refused.- Returns:
trueif the field is not marked invalid and its current value satisfies the constraints of the field
-
stepUp
public void stepUp()Simulates the user clicking the step up button once.The step buttons are only rendered when
AbstractNumberField.setStepButtonsVisible(boolean)is enabled, so stepping a field without them throws anIllegalStateException.- Throws:
IllegalStateException- if the component is not usable, the step buttons are not visible, or the new value would be outside the min - max range
-
stepUp
public void stepUp(int times) Simulates the user clicking the step up button the given number of times.Each click sets the value on its own, so one value change event is fired per click, as in the browser. If a click cannot be performed, the value keeps the steps that were applied before it.
- Parameters:
times- how many times the step up button is clicked, must be a positive integer- Throws:
IllegalArgumentException- iftimesis not positiveIllegalStateException- if the component is not usable, the step buttons are not visible, or the new value would be outside the min - max range
-
stepDown
public void stepDown()Simulates the user clicking the step down button once.The step buttons are only rendered when
AbstractNumberField.setStepButtonsVisible(boolean)is enabled, so stepping a field without them throws anIllegalStateException.- Throws:
IllegalStateException- if the component is not usable, the step buttons are not visible, or the new value would be outside the min - max range
-
stepDown
public void stepDown(int times) Simulates the user clicking the step down button the given number of times.Each click sets the value on its own, so one value change event is fired per click, as in the browser. If a click cannot be performed, the value keeps the steps that were applied before it.
- Parameters:
times- how many times the step down button is clicked, must be a positive integer- Throws:
IllegalArgumentException- iftimesis not positiveIllegalStateException- if the component is not usable, the step buttons are not visible, or the new value would be outside the min - max range
-