From 032c66bfc96a3f9381e2734a63d0664f62313dba Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 4 Mar 2021 08:23:09 -0300 Subject: [PATCH] Bug 27858: Unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch introduces unit tests for the new exception to be thrown. It generates a new extended attribute type, keeps the randomly generated 'code' and deletes the object. This way we can be sure the code doesn't exist on the DB. It then tries to generate an attribute of that type, to force the exception to be thrown. Signed-off-by: Martin Renvoize Signed-off-by: Joonas Kylmälä Signed-off-by: Jonathan Druart --- t/db_dependent/Koha/Patron/Attribute.t | 39 +++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Patron/Attribute.t b/t/db_dependent/Koha/Patron/Attribute.t index f4bec78d4c..631279dbdf 100755 --- a/t/db_dependent/Koha/Patron/Attribute.t +++ b/t/db_dependent/Koha/Patron/Attribute.t @@ -33,7 +33,7 @@ my $builder = t::lib::TestBuilder->new; subtest 'store() tests' => sub { - plan tests => 2; + plan tests => 3; subtest 'repeatable attributes tests' => sub { @@ -178,6 +178,43 @@ subtest 'store() tests' => sub { $schema->storage->txn_rollback; }; + + subtest 'invalid type tests' => sub { + + plan tests => 2; + + $schema->storage->txn_begin; + + my $patron = $builder->build_object({ class => 'Koha::Patrons' }); + my $attribute_type = $builder->build_object( + { + class => 'Koha::Patron::Attribute::Types', + value => { + unique_id => 0, + repeatable => 0 + } + } + ); + + my $code = $attribute_type->code; + $attribute_type->delete; + + throws_ok + { Koha::Patron::Attribute->new( + { + borrowernumber => $patron->borrowernumber, + code => $code, + attribute => 'Who knows' + + })->store; + } + 'Koha::Exceptions::Patron::Attribute::InvalidType', + 'Exception thrown on invalid attribute code'; + + is( $@->type, $code, 'type exception parameter passed' ); + + $schema->storage->txn_rollback; + }; }; subtest 'type() tests' => sub { -- 2.39.5