+ 'part_type' => [ 'part', 'assembly' ],
+}, {
+ query => [
+ 'or',
+ [
+ 'part_type',
+ 'part',
+ 'part_type',
+ 'assembly'
+ ]
+ ]
+}, 'object test without prefix but complex value', class => 'SL::DB::Manager::Part';
+test {
+ 'part.part_type' => [ 'part', 'assembly' ],
+}, {
+ query => [
+ 'or',
+ [
+ 'part.part_type',
+ 'part',
+ 'part.part_type',
+ 'assembly'
+ ]
+ ]
+}, 'object test with prefix but complex value', class => 'SL::DB::Manager::OrderItem';
+
+test {
+ description => 'test'
+}, {
+ query => [ description => 'test' ],
+ with_objects => [ 'order' ]
+}, 'with_objects don\'t get clobbered', with_objects => [ 'order' ];
+
+test {
+ customer => {
+ description => 'test'
+ }
+}, {
+ query => [ 'customer.description' => 'test' ],
+ with_objects => [ 'order', 'customer' ]
+}, 'with_objects get extended with auto infered objects', with_objects => [ 'order' ];
+
+test {
+ customer => {
+ description => 'test'
+ }
+}, {
+ query => [ 'customer.description' => 'test' ],
+ with_objects => [ 'order', 'customer' ]
+}, 'with_objects get extended with auto infered objects with classes', class => 'SL::DB::Manager::Order', with_objects => [ 'order' ];
+
+test {
+ customer => {
+ description => 'test'
+ }
+}, {
+ query => [ 'customer.description' => 'test' ],
+ with_objects => [ 'customer' ]
+}, 'with_objects: no duplicates', with_objects => [ 'customer' ];
+
+test {
+ part => {
+ 'partnumber:substr::ilike' => '1',
+ },
+}, {
+ query => [
+ 'part.partnumber', {
+ ilike => '%1%'
+ }
+ ],
+ with_objects => [ 'part' ],
+}, 'Regression check: prefixing of fallback filtering in relation with custom filters', class => 'SL::DB::Manager::OrderItem';
+test {
+ 'description:substr:multi::ilike' => 'term1 term2',
+}, {
+ query => [
+ and => [
+ description => { ilike => '%term1%' },
+ description => { ilike => '%term2%' },
+ ]
+ ]
+}, 'simple :multi';
+
+test {
+ part => {
+ 'all:substr:multi::ilike' => 'term1 term2',
+ },