/**
   * Test when the samplesheet only contains the vital columns with data.
   *
   * @throws IOException
   */
  @Test
  public void testValidMinimalSamplesheet() throws IOException {
    List<Sample> actualSamples =
        reader.read(getClassLoader().getResource("samplesheets/valid_minimal.csv").getFile());

    Assert.assertEquals(actualSamples, expectedValidSamples);
  }
 /**
  * Test when a sample is missing the last field but with a comma ending the previous field.
  *
  * @throws IOException
  */
 @Test(expectedExceptions = IOException.class)
 public void testSampleMissingLastFieldEndingWithAComma() throws IOException {
   reader.read(
       getClassLoader()
           .getResource("samplesheets/sample_missing_last_field_comma-ended.csv")
           .getFile());
 }
  /**
   * Test when the run value and date are swapped (so columns do not have a correct seeming value
   * but is of the same type). Currently, the expected behavior is not checking on this and it
   * should pass as long as the type of the value is correct.
   *
   * @throws IOException
   */
  @Test
  public void testSampleRunAndSequencingStartDateSwapped() throws IOException {
    @SuppressWarnings("unchecked")
    List<Sample> expectedSamples = (List<Sample>) expectedValidSamples.clone();
    expectedSamples.remove(1);
    expectedSamples.add(1, new Sample("sample2", "SN163", 648, 150616, "AHKYLMADXX", 2));

    List<Sample> actualSamples =
        reader.read(
            getClassLoader()
                .getResource("samplesheets/sample_run_sequencingStartDate_swapped.csv")
                .getFile());

    Assert.assertEquals(actualSamples, expectedSamples);
  }
 /**
  * Test when a sample is missing a field.
  *
  * @throws IOException
  */
 @Test(expectedExceptions = IOException.class)
 public void testSampleMissingRun() throws IOException {
   reader.read(getClassLoader().getResource("samplesheets/sample_missing_run.csv").getFile());
 }
 /**
  * Test when the header of the csv file is missing.
  *
  * @throws IOException
  */
 @Test(expectedExceptions = IOException.class)
 public void testHeaderLineIsMissing() throws IOException {
   reader.read(getClassLoader().getResource("samplesheets/missing_header_line.csv").getFile());
 }
 /**
  * Test when the header of the csv file is an empty line.
  *
  * @throws IOException
  */
 @Test(expectedExceptions = IOException.class)
 public void testHeaderIsAnEmptyLine() throws IOException {
   reader.read(getClassLoader().getResource("samplesheets/header_empty_line.csv").getFile());
 }