package io.konik.csv.mapper; import io.konik.csv.Rows; import io.konik.csv.converter.InvoiceToRowConverter; import io.konik.csv.model.Row; import io.konik.zugferd.Invoice; import org.assertj.core.api.Condition; import org.junit.Test; import java.io.File; import static org.assertj.core.api.Assertions.assertThat; public class CsvInvoicesReaderTest { private CsvInvoicesReader reader = new CsvInvoicesReader(); @Test public void shouldReadAllInvoicesFromCsvFile() { //given: File csvFile = new File("src/test/resources/csv/example.csv"); //when: CsvInvoicesReader.Result result = reader.read(csvFile); //then: assertThat(result.getConvertedRows()).hasSize(2); assertThat(result.getConvertedRows().get(0).getInvoice()).is(createdFrom(Rows.row1)); assertThat(result.getConvertedRows().get(1).getInvoice()).is(createdFrom(Rows.row2)); } @Test public void shouldMapFileInput() { //given: File csvFile = new File("src/test/resources/csv/example_with_file.csv"); //when: CsvInvoicesReader.Result result = reader.read(csvFile); //then: assertThat(result.getConvertedRows().get(0).getRow().getFile().getInput()).isEqualTo("src/test/resources/csv/pdf/invoice.pdf"); assertThat(result.getConvertedRows().get(0).getRow().getFile().getOutput()).isEqualTo("/tmp/inoive_new.pdf"); //and: assertThat(result.getConvertedRows().get(1).getRow().getFile().getInput()).isEqualTo("src/test/resources/csv/pdf/invoice2.pdf"); assertThat(result.getConvertedRows().get(1).getRow().getFile().getOutput()).isEqualTo("/tmp/invoice2_new.pdf"); } private static Condition<Invoice> createdFrom(final Row row) { return new Condition<Invoice>() { @Override public boolean matches(Invoice invoice) { return row.equals(InvoiceToRowConverter.convert(invoice)); } }; } }