diff --git a/Koha/Object.pm b/Koha/Object.pm index da9315dcc8..57b1429b89 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -345,6 +345,10 @@ Returns the (probably non-fatal) messages that were recorded on the object. sub messages { my ( $self ) = @_; + + $self->{_messages} = [] + unless defined $self->{_messages}; + return $self->{_messages}; } diff --git a/t/db_dependent/Koha/Object.t b/t/db_dependent/Koha/Object.t index 9031533113..b78283ce25 100755 --- a/t/db_dependent/Koha/Object.t +++ b/t/db_dependent/Koha/Object.t @@ -870,7 +870,9 @@ subtest 'set_or_blank' => sub { subtest 'messages() and add_message() tests' => sub { - plan tests => 6; + plan tests => 7; + + $schema->storage->txn_begin; my $patron = Koha::Patron->new; @@ -886,5 +888,13 @@ subtest 'messages() and add_message() tests' => sub { is( ref($messages[0]), 'Koha::Object::Message', 'Right type returned' ); is( ref($messages[1]), 'Koha::Object::Message', 'Right type returned' ); is( $messages[0]->message, 'message_1', 'Right message recorded' ); - is( $messages[1]->message, 'message_2', 'Right message recorded' ); + + my $patron_id = $builder->build_object({ class => 'Koha::Patrons' })->id; + # get a patron from the DB, ->new is not called, ->messages should initialize _messages as an empty arrayref + $patron = Koha::Patrons->find( $patron_id ); + + isnt( $patron->messages, undef, '->messages initializes the array if required' ); + is( scalar @{ $patron->messages }, 0, '->messages returns an empty arrayref' ); + + $schema->storage->txn_rollback; };