ParseFilter: Bugfix bei short circuit bedingung
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 4 Nov 2010 16:27:40 +0000 (17:27 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 26 Oct 2011 13:17:27 +0000 (15:17 +0200)
Test angepasst

SL/Controller/Helper/ParseFilter.pm
t/controllers/helpers/parse_filter.t

index 96d3b32..b7769bb 100644 (file)
@@ -39,8 +39,8 @@ sub parse_filter {
   _launder_keys($filter) unless $params{no_launder};
 
   return
-    query => $query,
-    @$objects ? ( with_objects => [ uniq @$objects ]) : ();
+    ($query   && @$query   ? (query => $query) : ()),
+    ($objects && @$objects ? ( with_objects => [ uniq @$objects ]) : ());
 }
 
 sub _launder_keys {
@@ -61,7 +61,7 @@ sub _pre_parse {
   my ($filter, $with_objects, $prefix, %params) = @_;
 
   return () unless 'HASH'  eq ref $filter;
-  $with_objects = [];
+  $with_objects ||= [];
 
   my @result;
 
index 5a1ca07..03d5d15 100644 (file)
@@ -22,7 +22,6 @@ sub test ($$$) {
 }
 
 test { }, {
-  query => []
 }, 'minimal test';
 
 test {
@@ -52,7 +51,7 @@ test {
   }
 }, {
   query => [ 'customer.chart.accno' => 'test' ],
-  with_objects => [ 'customer', 'chart' ],
+  with_objects => bag( 'customer', 'chart' ),
 }, 'nested joins';
 
 test {
@@ -76,7 +75,7 @@ test {
 },
 {
   query => [ 'customer.chart.accno' => { like => '%1200' } ],
-  with_objects => ['customer', 'chart' ],
+  with_objects => bag('customer', 'chart' ),
 }, 'all together';
 
 
@@ -94,10 +93,7 @@ test {
                'invoice.customer.name'  => 'test',
                'customer.name'          => 'test',
              }} ],
-  'with_objects' => [
-                      'invoice',
-                      'customer'
-                    ]
+  'with_objects' => bag( 'invoice', 'customer' )
 }, 'object in more than one relationship';
 
 test {