From 8874e4a2600db75b521e5cb5a9590bba72a8b4fc Mon Sep 17 00:00:00 2001
From: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Date: Thu, 9 Nov 2023 13:47:32 +0000
Subject: [PATCH] Bug 35287: Add unit tests
Test plan, k-t-d:
prove t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
Signed-off-by: Edith Speller <edith.speller@ukhsa.gov.uk>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
---
.../Koha/Object/Mixin/AdditionalFields.t | 112 +++++++++++++++++-
1 file changed, 111 insertions(+), 1 deletion(-)
diff --git a/t/db_dependent/Koha/Object/Mixin/AdditionalFields.t b/t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
index e49c6b48b7..7dd21ba1ce 100755
--- a/t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
+++ b/t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
@@ -1,12 +1,14 @@
#!/usr/bin/perl
use Modern::Perl;
-use Test::More tests => 5;
+use Test::More tests => 6;
use t::lib::TestBuilder;
use String::Random qw(random_string);
use Koha::Database;
use Koha::Subscription;
use Koha::AdditionalField;
+use Koha::AuthorisedValueCategory;
+use Koha::ERM::License;
use C4::Context;
use CGI;
@@ -280,3 +282,111 @@ subtest 'prepare_cgi_additional_field_values' => sub {
$schema->txn_rollback;
};
+
+subtest 'strings_map() tests' => sub {
+ plan tests => 1;
+ $schema->txn_begin;
+ Koha::AdditionalFields->search->delete;
+ my $license = Koha::ERM::License->new(
+ {
+ name => "license name",
+ type => "national",
+ status => "in_negotiation",
+
+ }
+ );
+ $license->store()->discard_changes();
+ my $field = Koha::AdditionalField->new(
+ {
+ tablename => 'erm_licenses',
+ name => 'af_1',
+
+ }
+ );
+ $field->store()->discard_changes();
+ my $field2 = Koha::AdditionalField->new(
+ {
+ tablename => 'erm_licenses',
+ name => 'af_2',
+
+ }
+ );
+ $field2->store()->discard_changes();
+ my $value = 'some license value';
+ $license->set_additional_fields(
+ [
+ {
+ id => $field->id,
+ value => $value . ' 1',
+
+ },
+ {
+ id => $field->id,
+ value => $value . ' 2',
+
+ }
+ ]
+ );
+ $license->add_additional_fields(
+ {
+ $field2->id => ['second field'],
+
+ },
+ 'erm_licenses'
+ );
+ my $av_category = Koha::AuthorisedValueCategory->new( { category_name => "AV_CAT_NAME" } );
+ $av_category->store()->discard_changes();
+ my $av_value = Koha::AuthorisedValue->new(
+ {
+ category => $av_category->category_name,
+ authorised_value => 'BOB',
+ lib => "Robert"
+ }
+ );
+ my $av_field = Koha::AdditionalField->new(
+ {
+ tablename => "erm_licenses",
+ name => "av_field",
+ authorised_value_category => $av_category->category_name,
+
+ }
+ );
+ $av_field->store()->discard_changes();
+ $license->add_additional_fields(
+ {
+ $av_field->id => [ $av_value->authorised_value ],
+
+ },
+ 'erm_licenses'
+ );
+ my $values = $license->get_additional_field_values_for_template;
+ my $strings_map = $license->strings_map;
+ is_deeply(
+ $strings_map,
+ {
+ additional_field_values => [
+ {
+ 'field_id' => $field->id,
+ 'type' => 'text',
+ 'field_label' => $field->name,
+ 'value_str' => join( ', ', @{ $values->{ $field->id } } )
+ },
+ {
+ 'field_id' => $field2->id,
+ 'type' => 'text',
+ 'field_label' => $field2->name,
+ 'value_str' => join( ', ', @{ $values->{ $field2->id } } )
+ },
+ {
+ 'field_id' => $av_field->id,
+ 'type' => 'av',
+ 'field_label' => $av_field->name,
+ 'value_str' => join( ', ', @{ $values->{ $av_field->id } } )
+ }
+ ]
+ },
+ 'strings_map looks good'
+ );
+ $schema->txn_rollback;
+ ;
+};
--
2.39.2