Kundenstammdaten: Lieferadresse speichern, wenn beliebiges Feld gesetzt
[kivitendo-erp.git] / t / controllers / helpers / parse_filter.t
index a53c8c4..0d3db7f 100644 (file)
@@ -1,6 +1,6 @@
 use lib 't';
 
-use Test::More tests => 36;
+use Test::More tests => 41;
 use Test::Deep;
 use Data::Dumper;
 
@@ -397,3 +397,44 @@ test {
     'part.test' => { 'what', { ilike => '%2%' } },
   ]
 }, 'additional tokens + filters + methods', class => 'SL::DB::Manager::OrderItem';
+
+test {
+  'orderitems.part.test.what:substr::ilike' => 2,
+}, {
+  query => [
+    'orderitems.part.test' => { 'what', { ilike => '%2%' } },
+  ]
+}, 'relationship + additional tokens + filters + methods', class => 'SL::DB::Manager::Order';
+
+test {
+  part => {
+    'obsolete::lazy_bool_eq' => '0',
+  },
+}, {
+  query => [
+      or => [
+        'part.obsolete' => undef,
+        'part.obsolete' => 0
+      ],
+  ],
+  with_objects => [ 'part' ],
+}, 'complex methods modifying the key';
+
+
+test {
+  'customer:substr::ilike' => ' Meyer'
+}, {
+  query => [ customer => { ilike => '%Meyer%' } ]
+}, 'auto trim 1';
+
+test {
+  'customer:head::ilike' => ' Meyer '
+}, {
+  query => [ customer => { ilike => 'Meyer%' } ]
+}, 'auto trim 2';
+
+test {
+  'customer:tail::ilike' => "\nMeyer\x{a0}"
+}, {
+  query => [ customer => { ilike => '%Meyer' } ]
+}, 'auto trim 2';