From fb4b40328378f5c935993c091cd945ed34797fa7 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 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. --- 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 f4bec78d4ca..631279dbdfb 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.30.1