package org.molgenis.data.excel;
import com.google.common.collect.Lists;
import org.apache.commons.io.IOUtils;
import org.molgenis.data.Entity;
import org.molgenis.data.MolgenisInvalidFormatException;
import org.molgenis.data.Repository;
import org.molgenis.data.meta.model.AttributeFactory;
import org.molgenis.data.meta.model.EntityTypeFactory;
import org.molgenis.test.data.AbstractMolgenisSpringTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
public class ExcelRepositorySourceTest extends AbstractMolgenisSpringTest
{
@Autowired
private EntityTypeFactory entityTypeFactory;
@Autowired
private AttributeFactory attrMetaFactory;
private InputStream is;
private ExcelRepositoryCollection excelRepositoryCollection;
@BeforeMethod
public void beforeMethod() throws MolgenisInvalidFormatException, IOException
{
is = getClass().getResourceAsStream("/test.xls");
excelRepositoryCollection = new ExcelRepositoryCollection("test.xls", is);
excelRepositoryCollection.setEntityTypeFactory(entityTypeFactory);
excelRepositoryCollection.setAttributeFactory(attrMetaFactory);
}
@AfterMethod
public void afterMethod()
{
IOUtils.closeQuietly(is);
}
@Test
public void getNumberOfSheets()
{
assertEquals(excelRepositoryCollection.getNumberOfSheets(), 3);
}
@Test
public void getRepositories()
{
List<String> repositories = Lists.newArrayList(excelRepositoryCollection.getEntityNames());
assertNotNull(repositories);
assertEquals(repositories.size(), 3);
}
@Test
public void getRepository()
{
Repository<Entity> test = excelRepositoryCollection.getRepository("test");
assertNotNull(test);
assertEquals(test.getName(), "test");
Repository<Entity> blad2 = excelRepositoryCollection.getRepository("Blad2");
assertNotNull(blad2);
assertEquals(blad2.getName(), "Blad2");
}
}