package com.github.jmchilton.blend4j.galaxy;
import java.util.Iterator;
import java.util.List;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.github.jmchilton.blend4j.galaxy.beans.History;
import com.github.jmchilton.blend4j.galaxy.beans.Job;
import com.github.jmchilton.blend4j.galaxy.beans.JobDetails;
/**
* Tests for Galaxy's Jobs API.
*
* @author Franklin Bristow franklin.bristow@phac-aspc.gc.ca
*
*/
public class JobsTest {
private GalaxyInstance instance;
private JobsClient client;
private HistoriesClient hClient;
@BeforeMethod
public void init() {
instance = TestGalaxyInstance.get();
client = instance.getJobsClient();
hClient = instance.getHistoriesClient();
}
@Test
public void testGetJobs() {
final List<Job> jobs = client.getJobs();
assert jobs != null;
assert !jobs.isEmpty();
for (final Job job : jobs) {
assert job.getId() != null;
}
}
@Test
public void testGetJobDetails() {
final List<Job> jobs = client.getJobs();
assert jobs != null;
assert !jobs.isEmpty();
final Job job = jobs.iterator().next();
final JobDetails deets = client.showJob(job.getId());
assert deets != null;
assert deets.getCommandLine() != null;
assert deets.getExitCode() != null;
}
/**
* check that the jobs filtered by history id are a subset of the full set
* of jobs.
*/
@Test
public void testGetJobsForHistory() {
final List<Job> allJobs = client.getJobs();
assert allJobs != null;
assert !allJobs.isEmpty();
final List<History> histories = hClient.getHistories();
assert histories != null;
assert !histories.isEmpty();
final Iterator<History> historyIterator = histories.iterator();
History history;
List<Job> historyJobs;
do {
history = historyIterator.next();
historyJobs = client.getJobsForHistory(history.getId());
} while(historyJobs.size() == 0 && historyIterator.hasNext());
assert historyJobs != null;
assert !historyJobs.isEmpty();
assert allJobs.size() >= historyJobs.size();
assert allJobs.containsAll(historyJobs);
}
}