package io.konik.csv.mapper; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.text.ParseException; import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.runners.Parameterized.Parameter; import static org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class CsvMapperHeaderColumnsConfigurerTest { private CsvMapperHeaderColumnsConfigurer configurer = new CsvMapperHeaderColumnsConfigurer(); @Parameter public String header; @Parameters(name = "{0}") public static Iterable<Object[]> getParams() throws ParseException { return Arrays.asList( new Object[] { "header.invoiceNumber" }, new Object[] { "header.type" }, new Object[] { "header.issued" }, new Object[] { "header.dueDate" }, new Object[] { "header.reference" }, new Object[] { "header.customerNumber" }, new Object[] { "header.currency" }, new Object[] { "header.note" }, new Object[] { "recipient.name" }, new Object[] { "recipient.contactName" }, new Object[] { "recipient.addressLine1" }, new Object[] { "recipient.addressLine2" }, new Object[] { "recipient.city" }, new Object[] { "recipient.postcode" }, new Object[] { "recipient.countryCode" }, new Object[] { "recipient.email" }, new Object[] { "recipient.taxes[0].number" }, new Object[] { "recipient.taxes[0].type" }, new Object[] { "recipient.taxes[1].number" }, new Object[] { "recipient.taxes[1].type" }, new Object[] { "recipient.taxes[2].number" }, new Object[] { "recipient.taxes[2].type" }, new Object[] { "recipient.bankInfo.bankName" }, new Object[] { "recipient.bankInfo.bic" }, new Object[] { "recipient.bankInfo.iban" }, new Object[] { "issuer.name" }, new Object[] { "issuer.contactName" }, new Object[] { "issuer.addressLine1" }, new Object[] { "issuer.addressLine2" }, new Object[] { "issuer.city" }, new Object[] { "issuer.postcode" }, new Object[] { "issuer.countryCode" }, new Object[] { "issuer.email" }, new Object[] { "issuer.taxes[0].number" }, new Object[] { "issuer.taxes[0].type" }, new Object[] { "issuer.bankInfo.bankName" }, new Object[] { "issuer.bankInfo.bic" }, new Object[] { "issuer.bankInfo.iban" }, new Object[] { "items[0].name" }, new Object[] { "items[0].quantity" }, new Object[] { "items[0].unit" }, new Object[] { "items[0].unitPrice" }, new Object[] { "items[0].taxPercent" }, new Object[] { "items[1].name" }, new Object[] { "items[1].quantity" }, new Object[] { "items[1].unit" }, new Object[] { "items[1].unitPrice" }, new Object[] { "items[1].taxPercent" }, new Object[] { "items[2].name" }, new Object[] { "items[2].quantity" }, new Object[] { "items[2].unit" }, new Object[] { "items[2].unitPrice" }, new Object[] { "items[2].taxPercent" } ); } @Test public void confirmThatColumnDefinitionForGivenHeaderExists() { assertThat(configurer.getColumnDefinitionForHeader(header)).isNotNull(); } }