From 642f053adb48eebfc34fe75fc24db456c377621d Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
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 <m.de.rooy@rijksmuseum.nl>
---
 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