Bug 18951: Create data for TransformKohaToMarc.t
[koha.git] / 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;