Bug 18951: Create data for TransformKohaToMarc.t
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 19 Jul 2017 11:48:55 +0000 (13:48 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 24 Jul 2017 16:37:18 +0000 (13:37 -0300)
Adding schema and caching statements.
Adjust it so that the Koha to MARC mappings are not assumed to be present,
but are created as needed.
Remove the mock on marcflavour. It is no longer needed.
Resolving a small typo.

Test plan:
Run t/db_dependent/Biblio/TransformKohaToMarc.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lee Jamison <ldjamison@marywood.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
t/db_dependent/Biblio/TransformKohaToMarc.t

index 15eb71a..34a2a5e 100644 (file)
@@ -3,16 +3,27 @@ use Test::More tests => 1;
 use MARC::Record;
 
 use t::lib::Mocks;
+use Koha::Database;
+use Koha::Caches;
+use Koha::MarcSubfieldStructures;
 use C4::Biblio;
 
-t::lib::Mocks::mock_preference('marcflavour', 'MARC21');
+my $schema  = Koha::Database->new->schema;
+$schema->storage->txn_begin;
+
+# Create/overwrite some Koha to MARC mappings in default framework
+my $mapping1 = Koha::MarcSubfieldStructures->find('','300','a') // Koha::MarcSubfieldStructure->new({ frameworkcode => '', tagfield => '300', tagsubfield => 'a' });
+$mapping1->kohafield( "mytable.nicepages" );
+$mapping1->store;
+my $mapping2 = Koha::MarcSubfieldStructures->find('','300','b') // Koha::MarcSubfieldStructure->new({ frameworkcode => '', tagfield => '300', tagsubfield => 'b' });
+$mapping2->kohafield( "mytable2.goodillustrations" );
+$mapping2->store;
+Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" );
 
 my $record = C4::Biblio::TransformKohaToMarc({
-    "biblioitems.illus"   => "Other physical details", # 300$b
-    "biblioitems.pages"   => "Extent",                 # 300$a
-    "biblioitems.size"    => "Dimensions",             # 300$c
+    "mytable2.goodillustrations"   => "Other physical details", # 300$b
+    "mytable.nicepages"            => "Extent",                 # 300$a
 });
-
 my @subfields = $record->field('300')->subfields();
 is_deeply( \@subfields, [
           [
@@ -23,9 +34,9 @@ is_deeply( \@subfields, [
             'b',
             'Other physical details'
           ],
-          [
-            'c',
-            'Dimensions'
-          ]
         ],
-'TransformKohaToMarc should returns sorted subfields (regression test for bug 12343)' );
+'TransformKohaToMarc should return sorted subfields (regression test for bug 12343)' );
+
+# Cleanup
+Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" );
+$schema->storage->txn_rollback;