package uk.ac.ebi.ep.ebeye;
import java.util.List;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.lessThanOrEqualTo;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import rx.Observable;
import uk.ac.ebi.ep.ebeye.config.EbeyeConfig;
import uk.ac.ebi.ep.ebeye.protein.model.Protein;
/**
* Tests the behaviour of the {@link EbeyeRestService}.
*
* @author joseph
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {EbeyeConfig.class})
public class EbeyeRestServiceIT {
@Autowired
private EbeyeRestService ebeyeRestService;
private static final String KINASE = "kinase";
@Test
public void query_with_limit_of_5_sent_to_ebeyeSearch_returns_at_most_5_accessions() {
String query = KINASE;
int limit = 5;
List<String> actualAccs = ebeyeRestService.queryForUniqueAccessions(query, limit);
assertThat(actualAccs, hasSize(lessThanOrEqualTo(limit)));
}
@Test
public void query_with_limit_of_800_sent_to_ebeyeSearch_returns_at_most_5_accessions() {
String query = KINASE;
int limit = 800;
List<String> actualAccs = ebeyeRestService.queryForUniqueAccessions(query, limit);
assertThat(actualAccs, hasSize(lessThanOrEqualTo(limit)));
}
/**
* Test of queryForUniqueAccessions method, of class EbeyeRestService.
*/
@Test
public void testQuery_with_ec_And_searchTerm_And_limit_of_800_ForUniqueAccessions() {
String ec = "1.1.1.1";
String searchTerm = "alcohol";
int limit = 100;
List<String> actualAccs = ebeyeRestService.queryForUniqueAccessions(ec, searchTerm, limit);
assertThat(actualAccs, hasSize(lessThanOrEqualTo(limit)));
}
/**
* Test of queryForUniqueProteins method, of class EbeyeRestService.
*/
@Test
public void testQuery_with_ec_and_limit_of_800_ForUniqueProteins() {
String ec = "6.1.1.1";
int limit = 10;
List<Protein> actualUniqueProteins = ebeyeRestService.queryForUniqueProteins(ec, limit);
assertThat(actualUniqueProteins, hasSize(lessThanOrEqualTo(limit)));
}
/**
* Test of queryForUniqueProteins method, of class EbeyeRestService.
*/
@Test
public void testQuery_with_ec_and_searchTerm_and_limit_of_100_ForUniqueProteins_3args() {
String ec = "1.1.1.1";
String searchTerm = "alcohol";
int limit = 100;
List<Protein> actualUniqueProteins = ebeyeRestService.queryForUniqueProteins(ec, searchTerm, limit);
assertThat(actualUniqueProteins, hasSize(lessThanOrEqualTo(limit)));
}
/**
* Test of searchForUniqueProteins method, of class EbeyeRestService.
*/
@Test
public void testSearchForUniqueProteins() {
String query = "mtor";
int limit = 4;
List<Protein> actualUniqueProteins = ebeyeRestService.searchForUniqueProteins(query, limit);
assertThat(actualUniqueProteins, hasSize(lessThanOrEqualTo(limit)));
}
/**
* Test of queryForUniqueProteins method, of class EbeyeRestService.
*/
@Test
public void testQuery_For_Observable_UniqueProteins() {
String query = KINASE;
Observable<Protein> result = ebeyeRestService.queryForUniqueProteins(query);
List<Protein> actualUniqueProteins = result.toList().toBlocking().single();
assertNotNull(result);
assertThat(actualUniqueProteins, hasSize(greaterThan(1)));
}
}