Package org.molgenis.framework.tupletable.impl

Source Code of org.molgenis.framework.tupletable.impl.CsvTableTest

package org.molgenis.framework.tupletable.impl;

import static org.testng.Assert.assertEquals;

import java.io.File;
import java.nio.charset.Charset;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.molgenis.framework.tupletable.TableException;
import org.molgenis.framework.tupletable.TupleTable;
import org.molgenis.util.tuple.Tuple;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class CsvTableTest
{
  private static String csvString;

  @BeforeClass
  public static void setUpBeforeClass()
  {
    StringBuilder csvBuilder = new StringBuilder();
    csvBuilder.append("firstName").append(',').append("lastName").append('\n');
    csvBuilder.append("lucky").append(',').append("luke").append('\n');
    csvBuilder.append("calamity").append(',').append("jane");
    csvString = csvBuilder.toString();
  }

  @Test
  public void testCsvTableFile() throws Exception
  {
    File file = File.createTempFile("CsvTableFile_file", null);
    try
    {
      FileUtils.write(file, csvString, Charset.forName("UTF-8"));
      CsvTable csvTable = new CsvTable(file);
      testTable(csvTable);
    }
    finally
    {
      file.delete();
    }
  }

  @Test
  public void testCsvTableString() throws Exception
  {
    TupleTable table = new CsvTable(csvString);
    testTable(table);
  }

  @Test
  public void testLimitOffsetString() throws Exception
  {
    // create csv
    String csv = "firstName,lastName";
    csv += "\nlucky,luke";
    csv += "\ncalamity,jane";
    csv += "\njolly,jumper";

    TupleTable table = new CsvTable(csv);

    table.setLimitOffset(1, 1);

    assertEquals(table.getCount(), 3);

    assertEquals(table.getRows().size(), 1);

    assertEquals(table.getRows().get(0).getString("firstName"), "calamity");
  }

  @Test
  public void testLimitOffsetString_File() throws Exception
  {
    File file = File.createTempFile("CsvTableFile_file", null);
    try
    {
      // create csv
      String csvString = "firstName,lastName";
      csvString += "\nlucky,luke";
      csvString += "\ncalamity,jane";
      csvString += "\njolly,jumper";

      FileUtils.write(file, csvString, Charset.forName("UTF-8"));
      CsvTable csvTable = new CsvTable(file);
      testTable(csvTable);

      TupleTable table = new CsvTable(file);

      table.setLimitOffset(1, 1);

      assertEquals(table.getCount(), 3);

      assertEquals(table.getRows().size(), 1);

      assertEquals(table.getRows().get(0).getString("firstName"), "calamity");

    }
    finally
    {
      file.delete();
    }

  }

  @Test
  public void testColLimit() throws Exception
  {
    // create csv
    String csv = "firstName,lastName,city";
    csv += "\nlucky,luke,daisy town";
    csv += "\ncalamity,jane,dead gulch";
    csv += "\njolly,jumper,apache valley";

    TupleTable table = new CsvTable(csv);

    assertEquals(table.getColumns().size(), 3);

    table.setColLimit(2);

    assertEquals(table.getColumns().size(), 2);

    table.reset();

    assertEquals(table.getColumns().size(), 3);

    table.setColOffset(1);

    assertEquals(table.getColumns().size(), 2);

    table.setColLimit(1);

    assertEquals(table.getColumns().get(0).getName(), "lastName");

    assertEquals(table.getRows().get(0).getString("lastName"), "luke");

  }

  private void testTable(TupleTable table) throws TableException
  {
    // verify
    assertEquals(table.getColumns().size(), 2);
    assertEquals(table.getColumns().get(0).getName(), "firstName");
    assertEquals(table.getColumns().get(1).getName(), "lastName");

    assertEquals(2, table.getCount(), 2);

    List<Tuple> rows = table.getRows();
    Tuple row = rows.get(0);
    assertEquals(row.getNrCols(), 2);
    assertEquals(row.getString("firstName"), "lucky");
    assertEquals(row.getString("lastName"), "luke");

    row = rows.get(1);
    assertEquals(2, row.getNrCols(), 2);
    assertEquals(row.getString("firstName"), "calamity");
    assertEquals(row.getString("lastName"), "jane");
  }
}
TOP

Related Classes of org.molgenis.framework.tupletable.impl.CsvTableTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.