// Path: src/main/java/org/blackdread/filtersortjooqapi/exception/FilteringApiException.java
// public class FilteringApiException extends BadUsageApiException {
// 
//     public FilteringApiException(final String message) {
//         super(message);
//     }
// }


import org.blackdread.filtersortjooqapi.exception.FilteringApiException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
        Assertions.assertEquals(date2, FilterParser.ofDateTime().parse(correctFormatDate2));
        Assertions.assertEquals(date3, FilterParser.ofDateTime().parse(correctFormatDate3));

        // Later could add more default "correct" datetime values but very minimal -> still keep ISO
//        Assertions.assertEquals(date1, FilterParser.ofDateTime().parse("2017-10-20 14:46"));
//        Assertions.assertEquals(date2, FilterParser.ofDateTime().parse("2017-10-25 10:30:45"));
    }

    @Test
    void parseThrows() {
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("2017-04-06"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("poiuytd"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("Odwdw0"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("O"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse(" 5   "));
    }

    @Test
    void parseWithApiException() {
        Assertions.assertEquals(date1, FilterParser.ofDateTime().parseWithApiException(correctFormatDate1));
        Assertions.assertEquals(date2, FilterParser.ofDateTime().parseWithApiException(correctFormatDate2));
        Assertions.assertEquals(date3, FilterParser.ofDateTime().parseWithApiException(correctFormatDate3));

        // Later could add more default "correct" datetime values but very minimal -> still keep ISO
//        Assertions.assertEquals(date1, FilterParser.ofDateTime().parseWithApiException("2017-10-20 14:46"));
//        Assertions.assertEquals(date2, FilterParser.ofDateTime().parseWithApiException("2017-10-25 10:30:45"));
    }

    @Test
    void parseWithApiExceptionThrows() {
// Path: src/main/java/org/blackdread/filtersortjooqapi/exception/FilteringApiException.java
// public class FilteringApiException extends BadUsageApiException {
// 
//     public FilteringApiException(final String message) {
//         super(message);
//     }
// }


// Path: src/test/java/org/blackdread/filtersortjooqapi/filter/parser/FilterParserLocalDateTimeTest.java
import org.blackdread.filtersortjooqapi.exception.FilteringApiException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;

        Assertions.assertEquals(date2, FilterParser.ofDateTime().parse(correctFormatDate2));
        Assertions.assertEquals(date3, FilterParser.ofDateTime().parse(correctFormatDate3));

        // Later could add more default "correct" datetime values but very minimal -> still keep ISO
//        Assertions.assertEquals(date1, FilterParser.ofDateTime().parse("2017-10-20 14:46"));
//        Assertions.assertEquals(date2, FilterParser.ofDateTime().parse("2017-10-25 10:30:45"));
    }

    @Test
    void parseThrows() {
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("2017-04-06"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("poiuytd"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("Odwdw0"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse("O"));
        Assertions.assertThrows(DateTimeParseException.class, () -> FilterParser.ofDateTime().parse(" 5   "));
    }

    @Test
    void parseWithApiException() {
        Assertions.assertEquals(date1, FilterParser.ofDateTime().parseWithApiException(correctFormatDate1));
        Assertions.assertEquals(date2, FilterParser.ofDateTime().parseWithApiException(correctFormatDate2));
        Assertions.assertEquals(date3, FilterParser.ofDateTime().parseWithApiException(correctFormatDate3));

        // Later could add more default "correct" datetime values but very minimal -> still keep ISO
//        Assertions.assertEquals(date1, FilterParser.ofDateTime().parseWithApiException("2017-10-20 14:46"));
//        Assertions.assertEquals(date2, FilterParser.ofDateTime().parseWithApiException("2017-10-25 10:30:45"));
    }

    @Test
    void parseWithApiExceptionThrows() {
        Assertions.assertThrows(FilteringApiException.class, () -> FilterParser.ofDateTime().parseWithApiException("2017-04-06"));