package org.molgenis.data.csv; import com.google.common.collect.Iterators; import com.google.common.collect.Sets; import org.apache.commons.io.FileUtils; import org.molgenis.data.Entity; import org.molgenis.data.meta.model.AttributeFactory; import org.molgenis.data.meta.model.EntityType; import org.molgenis.data.meta.model.EntityTypeFactory; import org.molgenis.test.data.AbstractMolgenisSpringTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.FileCopyUtils; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import static org.testng.Assert.assertEquals; public class CsvIteratorTest extends AbstractMolgenisSpringTest { @Autowired private EntityTypeFactory entityTypeFactory; @Autowired private AttributeFactory attrMetaFactory; private EntityType entityType; @BeforeMethod public void setUpBeforeMethod() { entityType = entityTypeFactory.create(); entityType.addAttribute(attrMetaFactory.create().setName("col1")); entityType.addAttribute(attrMetaFactory.create().setName("col2")); } @Test public void testIterator() throws IOException { InputStream in = getClass().getResourceAsStream("/testdata.csv"); File csvFile = new File(FileUtils.getTempDirectory(), "testdata.csv"); FileCopyUtils.copy(in, new FileOutputStream(csvFile)); CsvIterator it = new CsvIterator(csvFile, "testdata", null, null, entityType); assertEquals(it.getColNamesMap().keySet(), Sets.newLinkedHashSet(Arrays.asList("col1", "col2"))); assertEquals(Iterators.size(it), 5); it = new CsvIterator(csvFile, "testdata", null, null, entityType); Entity entity = it.next(); assertEquals(entity.get("col1"), "val1"); assertEquals(entity.get("col2"), "val2"); } }