From b782ad26f2d829fbb41010424b3e6c2db6c279c8 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 25 Nov 2022 10:09:57 +0000 Subject: [PATCH] Bug 32350: Add subtest for bad columns Content-Type: text/plain; charset=utf-8 Test plan: Run t/db_dependent/TestBuilder.t And now run the whole test suite :) Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize --- t/db_dependent/TestBuilder.t | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/TestBuilder.t b/t/db_dependent/TestBuilder.t index 30588da103..1fa63d0ae1 100755 --- a/t/db_dependent/TestBuilder.t +++ b/t/db_dependent/TestBuilder.t @@ -21,8 +21,9 @@ use Modern::Perl; use utf8; -use Test::More tests => 15; +use Test::More tests => 16; use Test::Warn; +use Try::Tiny; use File::Basename qw(dirname); use Koha::Database; @@ -544,3 +545,35 @@ subtest 'Existence of object is only checked using primary keys' => sub { $schema->storage->txn_rollback; }; + +subtest 'Test bad columns' => sub { + plan tests => 3; + $schema->storage->txn_begin; + + try { + my $patron = $builder->build_object({ class => 'Koha::Patrons', value => { wrong => 1 } }); + ok( 0, 'Unexpected pass with wrong column' ); + } + catch { + like( $_, qr/^Error: value hash contains unrecognized columns: wrong/, 'Column wrong is bad' ); + }; + try { + my $patron = $builder->build_object({ class => 'Koha::Patrons', value => { surname => 'Pass', nested => { ignored => 1 }} }); + ok( 1, 'Nested hash ignored' ); + } + catch { + ok( 0, 'Unexpected trouble with nested hash' ); + }; + try { + my $patron = $builder->build_object({ + class => 'Koha::Patrons', + value => { surname => 'WontPass', categorycode => { description => 'bla', wrong_nested => 1 }}, + }); + ok( 0, 'Unexpected pass with wrong nested column' ); + } + catch { + like( $_, qr/^Error: value hash contains unrecognized columns: wrong_nested/, 'Column wrong_nested is bad' ); + }; + + $schema->storage->txn_rollback; +}; -- 2.30.2