@Test
        void upperLower() {
            oql(person.fullName.toUpperCase().is("A")).is("fullName.toUpperCase() = $1");
            oql(person.fullName.toLowerCase().is("A")).is("fullName.toLowerCase() = $1");
            oql(person.fullName.toLowerCase().isNot("A")).is("fullName.toLowerCase() != $1");
            oql(person.fullName.toLowerCase().in(Arrays.asList("a", "b"))).is("fullName.toLowerCase() IN $1");
            oql(person.fullName.toLowerCase().notIn(Arrays.asList("a", "b"))).is("NOT (fullName.toLowerCase() IN $1)");
            oql(person.fullName.toLowerCase().toUpperCase().is("A")).is("fullName.toLowerCase().toUpperCase() = $1");
            oql(person.fullName.toLowerCase().endsWith("A")).is("fullName.toLowerCase().endsWith($1)");
        }
Using bind variables in OQL ({@code $1, $2})
criteria/geode/test/org/immutables/criteria/geode/GeodeQueryVisitorTest.java