From 32efadc5e57b78cf5b1ce184320b3f5d8c1d5475 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Wed, 3 May 2017 15:30:14 -0300
Subject: [PATCH] Bug 18152: Add tests

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
---
 t/Charset.t | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/t/Charset.t b/t/Charset.t
index 143c208..fc25a66 100755
--- a/t/Charset.t
+++ b/t/Charset.t
@@ -17,11 +17,13 @@
 
 use Modern::Perl;
 
-use Test::More tests => 16;
+use Test::More tests => 17;
 use Encode qw( is_utf8 );
 
 use MARC::Record;
 
+use t::lib::Mocks;
+
 use utf8;
 use open ':std', ':encoding(utf8)';
 
@@ -71,4 +73,27 @@ ok( Encode::is_utf8($record->subfield('100','a')) &&
 
 is( nsb_clean("˜Leœ Moyen Âge"), "Le Moyen Âge", "nsb_clean removes ˜ and œ" );
 
+subtest 'SetMarcUnicodeFlag' => sub {
+    plan tests => 2;
+    # TODO This should be done in MARC::Record
+    my $leader                  = '012345678X0             ';
+    my $expected_marc21_leader  = '012345678a0             '; # position 9 of leader must be 'a'
+    my $expected_unimarc_leader = '012345678X0             '; # position 9 of leader must not be changed
+    # Note that position 9 of leader should be blank for UNIMARC, but as it is not related to encoding
+    # we do not want to change it
+
+    t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' );
+    my $marc21_record = MARC::Record->new;
+    $marc21_record->leader($leader);
+    SetMarcUnicodeFlag( $marc21_record, C4::Context->preference('marcflavour') );
+    is( $marc21_record->leader, $expected_marc21_leader, 'Leader 9 for MARC21 mush be "a"' );
+
+    t::lib::Mocks::mock_preference( 'marcflavour',             'UNIMARC' );
+    t::lib::Mocks::mock_preference( 'UNIMARCField100Language', 'fre' );
+    my $unimarc_record = MARC::Record->new;
+    $unimarc_record->leader($leader);
+    SetMarcUnicodeFlag( $unimarc_record, C4::Context->preference('marcflavour') );
+    is( $unimarc_record->leader, $expected_unimarc_leader, 'Leader 9 for UNIMARC must be blank' );
+};
+
 1;
-- 
2.9.3