package com.github.jmchilton.blend4j.galaxy;
import com.github.jmchilton.blend4j.galaxy.SearchClient.SearchResponse;
import com.github.jmchilton.blend4j.galaxy.beans.FileLibraryUpload;
import com.github.jmchilton.blend4j.galaxy.beans.HistoryDataset;
import com.github.jmchilton.blend4j.galaxy.beans.HistoryDataset.Source;
import com.github.jmchilton.blend4j.galaxy.beans.HistoryDetails;
import com.github.jmchilton.blend4j.galaxy.beans.Library;
import com.github.jmchilton.blend4j.galaxy.beans.LibraryContent;
import com.google.common.collect.Iterables;
import com.sun.jersey.api.client.ClientResponse;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class SearchTest {
private GalaxyInstance instance;
private SearchClient client;
@BeforeMethod
public void init() {
instance = TestGalaxyInstance.get();
client = instance.getSearchClient();
}
/* // Time dependent test that fails intermittently.
@Test
public void testListJobs() throws InterruptedException {
final String historyId = TestHelpers.getTestHistoryId(instance);
final HistoriesClient historyClient = instance.getHistoriesClient();
SearchResponse response = client.search("select * from job where state = 'new'");
assert response.getResults().size() == 0;
final File input1 = TestHelpers.getTestFile();
TestHelpers.testUpload(instance, historyId, input1);
response = client.search("select * from job where state = 'new'");
assert response.getResults().size() == 1;
final Map<String, Object> failedJob = response.getResults().get(0);
TestHelpers.waitForHistory(instance.getHistoriesClient(), historyId);
}
*/
@Test
public void testLdda() throws InterruptedException {
final File testFile = TestHelpers.getTestFile();
final LibrariesClient client = IntegrationTest.getLibrariesClient();
final Library testLibrary = IntegrationTest.createTestLibrary(client, "test-filesystem-paths" + UUID.randomUUID().toString());
final LibraryContent rootFolder = client.getRootFolder(testLibrary.getId());
final FileLibraryUpload upload = new FileLibraryUpload();
upload.setName("MOOCOWFILE");
upload.setFolderId(rootFolder.getId());
upload.setFileType("tabular");
upload.setFile(testFile);
final ClientResponse uploadResponse = client.uploadFile(testLibrary.getId(), upload);
IntegrationTest.assert200(uploadResponse);
final String historyId = TestHelpers.getTestHistoryId(instance);
final HistoryDataset hd = new HistoryDataset();
hd.setSource(Source.LIBRARY);
final String lddaId = client.getLibraryContents(testLibrary.getId()).get(1).getId();
hd.setContent(lddaId);
final HistoryDetails hda = instance.getHistoriesClient().createHistoryDataset(historyId, hd);
final String id = instance.getHistoriesClient().showHistoryContents(historyId).get(0).getId();
SearchResponse response;
final String query = "select copied_from_ldda_id from hda where id = '" + id + "'";
response = instance.getSearchClient().search(query);
assert response.getResults().get(0).get("copied_from_ldda_id").equals(lddaId);
TestHelpers.waitForHistory(instance.getHistoriesClient(), historyId);
}
}