Bug 13019 [QA Followup] - Allow find() and search() to be called as static methods
authorKyle M Hall <kyle@bywatersolutions.com>
Fri, 21 Nov 2014 16:40:48 +0000 (11:40 -0500)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Thu, 12 Feb 2015 18:21:05 +0000 (15:21 -0300)
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Koha/Objects.pm
t/db_dependent/Borrowers.t

index 8c17665..5d2d6d0 100644 (file)
@@ -105,7 +105,7 @@ sub search {
 
     }
     else {
-        my $class = ref( $self );
+        my $class = ref($self) ? ref($self) : $self;
         my $rs = $self->_resultset()->search($params);
 
         return $class->new_from_dbic($rs);
@@ -202,10 +202,15 @@ Returns the internal resultset or creates it if undefined
 sub _resultset {
     my ($self) = @_;
 
-    $self->{_resultset} ||=
-      Koha::Database->new()->schema()->resultset( $self->type() );
+    if ( ref($self) ) {
+        $self->{_resultset} ||=
+          Koha::Database->new()->schema()->resultset( $self->type() );
 
-    $self->{_resultset};
+        return $self->{_resultset};
+    }
+    else {
+        return Koha::Database->new()->schema()->resultset( $self->type() );
+    }
 }
 
 =head3 type
index 8d47ce7..bd75551 100755 (executable)
@@ -66,13 +66,13 @@ my $b3 = Koha::Borrower->new(
 );
 $b3->store();
 
-my $b1_new = Koha::Borrowers->new()->find( $b1->borrowernumber() );
+my $b1_new = Koha::Borrowers->find( $b1->borrowernumber() );
 is( $b1->surname(), $b1_new->surname(), "Found matching borrower" );
 
-my @borrowers = Koha::Borrowers->new()->search( { branchcode => $branchcode } );
+my @borrowers = Koha::Borrowers->search( { branchcode => $branchcode } );
 is( @borrowers, 3, "Found 3 borrowers with Search" );
 
-my $borrowers = Koha::Borrowers->new()->search( { branchcode => $branchcode } );
+my $borrowers = Koha::Borrowers->search( { branchcode => $branchcode } );
 is( $borrowers->count( { branchcode => $branchcode } ), 3, "Counted 3 borrowers with Count" );
 
 my $b = $borrowers->next();