@@ -, +, @@ stuff => Koha::Stuffs->find( $id ), foo => 1, prove t/db_dependent/Koha/Objects.t --- Koha/Objects.pm | 2 ++ t/db_dependent/Koha/Objects.t | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) --- a/Koha/Objects.pm +++ a/Koha/Objects.pm @@ -78,6 +78,8 @@ my $object = Koha::Objects->find( { keypart1 => $keypart1, keypart2 => $keypart2 sub find { my ( $self, $id ) = @_; + croak 'Cannot use "->find" in list context' if wantarray; + return unless defined($id); my $result = $self->_resultset()->find($id); --- a/t/db_dependent/Koha/Objects.t +++ a/t/db_dependent/Koha/Objects.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 13; +use Test::More tests => 14; use Test::Warn; use Koha::Authority::Types; @@ -43,6 +43,16 @@ my @columns = Koha::Patrons->columns; my $borrowernumber_exists = grep { /^borrowernumber$/ } @columns; is( $borrowernumber_exists, 1, 'Koha::Objects->columns should return the table columns' ); +subtest 'find' => sub { + plan tests => 2; + my $patron = $builder->build({source => 'Borrower'}); + my $patron_object = Koha::Patrons->find( $patron->{borrowernumber} ); + is( $patron_object->borrowernumber, $patron->{borrowernumber}, '->find should return the correct object' ); + + eval { my @patrons = Koha::Patrons->find( $patron->{borrowernumber} ); }; + like( $@, qr|^Cannot use "->find" in list context|, "->find should not be called in list context to avoid side-effects" ); +}; + subtest 'update' => sub { plan tests => 2; --