package com.googlecode.gwt.test.assertions;
import com.google.gwt.user.client.ui.ValueBox;
import static org.assertj.core.util.Objects.areEqual;
/**
* Base class for {@link ValueBox} assertions.
*
* @param <S> used to simulate "self types." For more information please read "<a href=
* "http://passion.forco.de/content/emulating-self-types-using-java-generics-simplify-fluent-api-implementation"
* target="_blank">Emulating 'self types' using Java Generics to simplify fluent API
* implementation</a>."
* @param <A> the type of the "actual" value.
* @param <T> the type of the ValueBox value.
* @author Gael Lazzari
*/
public class BaseValueBoxAssert<S extends BaseValueBoxAssert<S, A, T>, A extends ValueBox<T>, T>
extends BaseValueBoxBaseAssert<S, A, T> {
/**
* Creates a new <code>{@link BaseValueBoxBaseAssert}</code>.
*
* @param actual the actual value to verify.
* @param selfType the "self type."
*/
protected BaseValueBoxAssert(A actual, Class<S> selfType) {
super(actual, selfType);
}
/**
* Verifies that the actual {@link ValueBox} max length is equal to the given one.
*
* @param expected the given max length to compare the actual value to.
* @return this assertion object.
* @throws AssertionError if the actual max length is not equal to the given one.
* @see ValueBox#getMaxLength()
*/
public S maxLengthEquals(int expected) {
int length = actual.getMaxLength();
if (areEqual(length, expected))
return myself;
throw propertyComparisonFailed("max length", length, expected);
}
/**
* Verifies that the actual {@link ValueBox} visible length is equal to the given one.
*
* @param expected the given visible length to compare the actual value to.
* @return this assertion object.
* @throws AssertionError if the actual visible length is not equal to the given one.
* @see ValueBox#getVisibleLength()
*/
public S visibleLengthEquals(int expected) {
int length = actual.getVisibleLength();
if (areEqual(length, expected))
return myself;
throw propertyComparisonFailed("visible length", length, expected);
}
}