package org.jboss.arquillian.drone.webdriver.binary.downloading.source;
import java.io.File;
import org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils;
import org.jboss.arquillian.drone.webdriver.binary.downloading.ExternalBinary;
import static org.assertj.core.api.Assertions.assertThat;
/**
*
*/
public class LocalBinarySource implements ExternalBinarySource {
public static final String LATEST_VERSION = "latest";
public static final String FIRST_VERSION = "1.0.0.Final";
public static final String FILE_NAME = "echo-script";
public static final String ECHO_LATEST_SCRIPT = "latest script";
public static final String ECHO_FIRST_SCRIPT = "1.0.0.Final script";
private static String LOCAL_SOURCE_DIRECTORY =
"src/test/resources/files/downloading/LocalSource/".replace("/", File.separator);
public static final File LATEST_FILE = new File(LOCAL_SOURCE_DIRECTORY + "latest-echo-script.zip");
public static final File FIRST_FILE = new File(LOCAL_SOURCE_DIRECTORY + "1.0.0.Final-echo-script.zip");
public static void assertThatCorrectFileWasDownloaded(boolean latest, File file) {
assertThat(BinaryFilesUtils.getMd5hash(file))
.as("MD5 hash should be same")
.isEqualTo(BinaryFilesUtils.getMd5hash(latest ? LATEST_FILE : FIRST_FILE));
}
@Override
public ExternalBinary getLatestRelease() throws Exception {
return new ExternalBinary(LATEST_VERSION, LATEST_FILE.toURI().toString());
}
@Override
public ExternalBinary getReleaseForVersion(String version) throws Exception {
if (version.equals(FIRST_VERSION)) {
return new ExternalBinary(FIRST_VERSION, FIRST_FILE.toURI().toString());
} else {
return getLatestRelease();
}
}
}