package org.molgenis.data.annotation.core.resources.impl;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.molgenis.data.Entity;
import org.molgenis.data.Query;
import org.molgenis.data.annotation.core.resources.ResourceConfig;
import org.molgenis.data.annotation.core.resources.impl.tabix.TabixRepositoryFactory;
import org.molgenis.data.annotation.core.resources.impl.tabix.TabixVcfRepositoryFactory;
import org.molgenis.data.meta.model.AttributeFactory;
import org.molgenis.data.meta.model.EntityTypeFactory;
import org.molgenis.data.support.QueryImpl;
import org.molgenis.data.vcf.model.VcfAttributes;
import org.molgenis.test.data.AbstractMolgenisSpringTest;
import org.molgenis.util.ResourceUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.File;
import static org.mockito.Mockito.when;
@ContextConfiguration(classes = { ResourceImplTest.Config.class })
public class ResourceImplTest extends AbstractMolgenisSpringTest
{
@Autowired
AttributeFactory attributeFactory;
@Autowired
EntityTypeFactory entityTypeFactory;
@Mock
ResourceConfig config;
@Autowired
VcfAttributes vcfAttributes;
@Mock
TabixRepositoryFactory factory;
private ResourceImpl resource;
@BeforeMethod
public void beforeMethod()
{
MockitoAnnotations.initMocks(this);
resource = new ResourceImpl("cadd_test", config)
{
@Override
public RepositoryFactory getRepositoryFactory()
{
return new TabixVcfRepositoryFactory("cadd", vcfAttributes, entityTypeFactory, attributeFactory);
}
};
}
@Test
public void testFindAllReturnsResult()
{
File file = ResourceUtils.getFile(getClass(), "/gonl/gonl.chr1.snps_indels.r5.vcf.gz");
when(config.getFile()).thenReturn(file);
Query<Entity> query = QueryImpl.EQ("#CHROM", "1").and().eq("POS", 126108);
System.out.println(resource.findAll(query));
}
@Test
public void testFindAllReturnsResultFile2()
{
File file = ResourceUtils
.getFile(getClass(), "/1000g/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5.20130502.genotypes.vcf.gz");
when(config.getFile()).thenReturn(file);
Query<Entity> query = QueryImpl.EQ("#CHROM", "1").and().eq("POS", 10352);
System.out.println(resource.findAll(query));
}
@Configuration
@ComponentScan({ "org.molgenis.data.vcf.model", "org.molgenis.data.annotation.core.effects" })
public static class Config
{
}
}