@Override
    public <T> List<T> toList(DataTable dataTable, Type itemType) {
        requireNonNull(dataTable, "dataTable may not be null");
        requireNonNull(itemType, "itemType may not be null");

        if (dataTable.isEmpty()) {
            return emptyList();
        }

        ListOrProblems<T> result = toListOrProblems(dataTable, itemType);
        if (result.hasList()) {
            return unmodifiableList(result.getList());
        }

        throw listNoConverterDefined(
            itemType,
            result.getProblems());
    }
@Test
    void to_list__single_column__throws_exception__register_transformer() {
        DataTable table = parse("",
            "| ♘ |",
            "| ♝ |");

        CucumberDataTableException exception = assertThrows(
            CucumberDataTableException.class,
            () -> converter.toList(table, Piece.class));
        assertThat(exception.getMessage(), is("" +
                "Can't convert DataTable to List<io.cucumber.datatable.DataTableTypeRegistryTableConverterTest$Piece>.\n"
                +
                "Please review these problems:\n" +
                "\n" +
                " - There was no table entry or table row transformer registered for io.cucumber.datatable.DataTableTypeRegistryTableConverterTest$Piece.\n"
                +
                "   Please consider registering a table entry or row transformer.\n" +
                "\n" +
                " - There was no table cell transformer registered for io.cucumber.datatable.DataTableTypeRegistryTableConverterTest$Piece.\n"
                +
                "   Please consider registering a table cell transformer.\n" +
                "\n" +
                " - There was no default table entry transformer registered to transform io.cucumber.datatable.DataTableTypeRegistryTableConverterTest$Piece.\n"
                +
                "   Please consider registering a default table entry transformer.\n" +
                "\n" +
                " - There was no default table cell transformer registered to transform io.cucumber.datatable.DataTableTypeRegistryTableConverterTest$Piece.\n"
                +
                "   Please consider registering a default table cell transformer.\n" +
                "\n" +
                "Note: Usually solving one is enough"));
    }