@Override
    public <T> T convert(DataTable dataTable, Type type) {
        return convert(dataTable, type, false);
    }
@Test
    void convert_to_optional_of_object__must_have_optional_converter() {
        DataTable table = parse("",
            "  |   | 1 | 2 | 3 |",
            "  | A | ♘ |   | ♝ |",
            "  | B |   |   |   |",
            "  | C |   | ♝ |   |");

        registry.defineDataTableType(new DataTableType(ChessBoard.class, CHESS_BOARD_TABLE_TRANSFORMER));

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