From 3f0dc34022cf1b8e77463a99fcfa5e3b72b76e1f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 18 Oct 2018 18:38:18 -0300 Subject: [PATCH] Bug 21610: Add tests Adding few tests to Koha/Object.t in order to highlight what we are trying to fix. Note that Koha::ItemType->store was wrong for notforloan, the default value should be null `notforloan` smallint(6) DEFAULT NULL, but the previous fix (bug 21599) made it default to '0' --- t/db_dependent/Koha/Object.t | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Object.t b/t/db_dependent/Koha/Object.t index e1812bc1c6..b8ac2121bc 100755 --- a/t/db_dependent/Koha/Object.t +++ b/t/db_dependent/Koha/Object.t @@ -241,7 +241,7 @@ subtest "Test update method" => sub { subtest 'store() tests' => sub { - plan tests => 7; + plan tests => 15; # Using Koha::ApiKey to test Koha::Object>-store # Simple object with foreign keys and unique key @@ -305,6 +305,46 @@ subtest 'store() tests' => sub { my $ret = $api_key->store; is( ref($ret), 'Koha::ApiKey', 'store() returns the object on success' ); + + my $library = $builder->build_object( { class => 'Koha::Libraries' } ); + my $patron_category = $builder->build_object( + { + class => 'Koha::Patron::Categories', + value => { category_type => 'P', enrolmentfee => 0 } + } + ); + + $patron = eval { + Koha::Patron->new( + { + categorycode => $patron_category->categorycode, + branchcode => $library->branchcode, + dateofbirth => "", # date will be set to NULL + sms_provider_id => "", # Integer will be set to NULL + privacy => "", # privacy cannot be NULL but has a default value + } + )->store; + }; + is( $@, '', 'No error should be raised by ->store if empty strings are passed' ); + is( $patron->privacy, 1, 'Default value for privacy should be set to 1' ); + is( $patron->dateofbirth, undef, 'dateofbirth must have been set to undef'); + is( $patron->sms_provider_id, undef, 'sms_provider_id must have been set to undef'); + + my $itemtype = eval { + Koha::ItemType->new( + { + itemtype => 'IT4test', + rentalcharge => "", + notforloan => "", + hideinopac => "", + } + )->store; + }; + is( $@, '', 'No error should be raised by ->store if empty strings are passed' ); + is( $itemtype->rentalcharge, undef, 'decimal DEFAULT NULL should default to null'); + is( $itemtype->notforloan, undef, 'int DEFAULT NULL should default to null'); + is( $itemtype->hideinopac, 0, 'int NOT NULL DEFAULT 0 should default to 0'); + $schema->storage->txn_rollback; }; -- 2.11.0