From c54c4f75d48e62d4717f0018fbf3c1e51ca273f9 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. Signed-off-by: Martin Renvoize --- 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.20.1