All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fluentlenium.core.conditions.DynamicIntegerConditionsImpl Maven / Gradle / Ivy

package org.fluentlenium.core.conditions;

import java.util.List;
import java.util.function.Supplier;

import org.fluentlenium.core.domain.FluentList;
import org.fluentlenium.core.domain.FluentWebElement;

/**
 * Conditions for integer
 */
public class DynamicIntegerConditionsImpl extends AbstractObjectConditions>
        implements ListIntegerConditions {
    /**
     * Creates a new conditions object on integer.
     *
     * @param supplier underlying list
     * @param negation negation value
     */
    public DynamicIntegerConditionsImpl(Supplier> supplier, boolean negation) {
        super(supplier.get(), negation);
    }

    @Override
    protected AbstractObjectConditions> newInstance(boolean negationValue) {
        return new DynamicIntegerConditionsImpl(() -> object, negationValue);
    }

    @Override
    @Negation
    public DynamicIntegerConditionsImpl not() {
        return (DynamicIntegerConditionsImpl) super.not();
    }

    @Override
    public boolean equalTo(int value) {
        return verify(input -> getListSize(input) == value);
    }

    @Override
    public boolean lessThan(int value) {
        return verify(input -> getListSize(input) < value);
    }

    @Override
    public boolean lessThanOrEqualTo(int value) {
        return verify(input -> getListSize(input) <= value);
    }

    @Override
    public boolean greaterThan(int value) {
        return verify(input -> getListSize(input) > value);
    }

    @Override
    public boolean greaterThanOrEqualTo(int value) {
        return verify(input -> getListSize(input) >= value);
    }

    private  int getListSize(T input) {
        if (input instanceof FluentList) {
            return ((FluentList) input).count();
        } else {
            return input.size();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy