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

au.com.agic.apptesting.utils.impl.ThreadDetailsImpl Maven / Gradle / Ivy

package au.com.agic.apptesting.utils.impl;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import au.com.agic.apptesting.profiles.configuration.UrlMapping;
import au.com.agic.apptesting.utils.ProxyDetails;
import au.com.agic.apptesting.utils.ThreadDetails;

import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.WebDriver;
import org.zaproxy.clientapi.core.ClientApi;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import javax.validation.constraints.NotNull;

/**
 * Represents the details required by a feature to run
 */
public class ThreadDetailsImpl implements ThreadDetails {

	private final UrlMapping url;
	private final WebDriver webDriver;
	private final Map dataset = new HashMap<>();
	private final String reportDirectory;
	private boolean failed;
	private List> proxies;
	private long sleep;

	/**
	 * The ZAP client api interface
	 */
	private ClientApi zapClientApi;

	public ThreadDetailsImpl(
		@NotNull final UrlMapping url,
		@NotNull final Map dataset,
		@NotNull final String reportDirectory,
		@NotNull final List> proxies,
		@NotNull final WebDriver webDriver) {
		checkNotNull(url);
		checkNotNull(webDriver);

		this.url = url;
		this.webDriver = webDriver;
		this.dataset.clear();
		this.dataset.putAll(dataset);
		this.reportDirectory = reportDirectory;
		this.proxies = new ArrayList<>(proxies);
	}

	@Override
	public void setDefaultSleep(final long defaultSleep) {
		this.sleep = defaultSleep;
	}

	@Override
	public long getDefaultSleep() {
		return sleep;
	}

	@Override
	public UrlMapping getUrlDetails() {
		return url;
	}

	@Override
	public WebDriver getWebDriver() {
		return webDriver;
	}

	@Override
	public Map getDataSet() {
		return new HashMap<>(dataset);
	}

	@Override
	public void setDataSet(final Map dataSet) {
		dataset.clear();
		if (dataSet != null) {
			dataset.putAll(dataSet);
		}
	}

	@Override
	public boolean getFailed() {
		return failed;
	}

	@Override
	public void setFailed(final boolean failed) {
		this.failed = failed;
	}

	@Override
	public String getReportDirectory() {
		return reportDirectory;
	}

	@Override
	public List> getProxyInterface() {
		return proxies;
	}

	@Override
	public Optional> getProxyInterface(@NotNull final String name) {
		checkArgument(StringUtils.isNotBlank(name));

		return proxies.stream()
			.filter(x -> name.equals(x.getProxyName()))
			.findFirst();
	}

	@Override
	public void setProxyInterface(final List> myProxies) {
		this.proxies = new ArrayList<>(myProxies);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy