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

net.serenitybdd.screenplay.waits.WaitOnSupplier Maven / Gradle / Ivy

There is a newer version: 4.2.9
Show newest version
package net.serenitybdd.screenplay.waits;

import net.serenitybdd.screenplay.Actor;
import net.thucydides.model.environment.SystemEnvironmentVariables;
import org.awaitility.Awaitility;

import java.time.Duration;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

import static net.thucydides.model.ThucydidesSystemProperty.WEBDRIVER_WAIT_FOR_TIMEOUT;

public class WaitOnSupplier extends WaitWithTimeout {

    private final Callable expectedState;

    public WaitOnSupplier(Callable expectedState) {
        this.expectedState = expectedState;
        int durationInMillis = SystemEnvironmentVariables.currentEnvironmentVariables().getPropertyAsInteger(WEBDRIVER_WAIT_FOR_TIMEOUT, 3000);
        this.timeout = Duration.ofMillis(durationInMillis);
    }

    @Override
    public  void performAs(T actor) {
        Awaitility.await().pollInSameThread().atMost(timeout.toMillis(), TimeUnit.MILLISECONDS).until(expectedState);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy