| Lines 12-18
          use Koha::ERM::License;
      
      
        Link Here | 
        
          | 12 | use C4::Context; | 12 | use C4::Context; | 
        
          | 13 |  | 13 |  | 
        
          | 14 | my $builder = t::lib::TestBuilder->new; | 14 | my $builder = t::lib::TestBuilder->new; | 
          
            
              | 15 | my $schema = Koha::Database->schema; | 15 | my $schema  = Koha::Database->schema; | 
        
          | 16 |  | 16 |  | 
        
          | 17 | subtest 'set_additional_fields with marcfield_mode = "get"' => sub { | 17 | subtest 'set_additional_fields with marcfield_mode = "get"' => sub { | 
        
          | 18 |     plan tests => 1; | 18 |     plan tests => 1; | 
  
    | Lines 22-30
          subtest 'set_additional_fields with marcfield_mode = "get"' => sub {
      
      
        Link Here | 
        
          | 22 |     my $biblio = $builder->build_sample_biblio(); | 22 |     my $biblio = $builder->build_sample_biblio(); | 
        
          | 23 |     my $record = $biblio->record; | 23 |     my $record = $biblio->record; | 
        
          | 24 |     $record->append_fields( | 24 |     $record->append_fields( | 
          
            
              | 25 |         MARC::Field->new('998', '', '', 'Z' => 'some value'), | 25 |         MARC::Field->new( '998', '', '', 'Z' => 'some value' ), | 
        
          | 26 |     ); | 26 |     ); | 
          
            
              | 27 |     $biblio->metadata->metadata($record->as_xml_record(C4::Context->preference('marcflavour'))); | 27 |     $biblio->metadata->metadata( $record->as_xml_record( C4::Context->preference('marcflavour') ) ); | 
        
          | 28 |     $biblio->metadata->store()->discard_changes(); | 28 |     $biblio->metadata->store()->discard_changes(); | 
        
          | 29 |     my $subscription = Koha::Subscription->new( | 29 |     my $subscription = Koha::Subscription->new( | 
        
          | 30 |         { | 30 |         { | 
  
    | Lines 35-43
          subtest 'set_additional_fields with marcfield_mode = "get"' => sub {
      
      
        Link Here | 
        
          | 35 |  | 35 |  | 
        
          | 36 |     my $field = Koha::AdditionalField->new( | 36 |     my $field = Koha::AdditionalField->new( | 
        
          | 37 |         { | 37 |         { | 
          
            
              | 38 |             tablename => 'subscription', | 38 |             tablename      => 'subscription', | 
            
              | 39 |             name => random_string('c' x 100), | 39 |             name           => random_string( 'c' x 100 ), | 
            
              | 40 |             marcfield => '998$Z', | 40 |             marcfield      => '998$Z', | 
        
          | 41 |             marcfield_mode => 'get', | 41 |             marcfield_mode => 'get', | 
        
          | 42 |         } | 42 |         } | 
        
          | 43 |     ); | 43 |     ); | 
  
    | Lines 50-56
          subtest 'set_additional_fields with marcfield_mode = "get"' => sub {
      
      
        Link Here | 
        
          | 50 |  | 50 |  | 
        
          | 51 |     my $values = $subscription->additional_field_values()->as_list(); | 51 |     my $values = $subscription->additional_field_values()->as_list(); | 
        
          | 52 |  | 52 |  | 
          
            
              | 53 |     is($values->[0]->value, 'some value', 'value was copied from the biblio record to the field'); | 53 |     is( $values->[0]->value, 'some value', 'value was copied from the biblio record to the field' ); | 
        
          | 54 |  | 54 |  | 
        
          | 55 |     $schema->txn_rollback; | 55 |     $schema->txn_rollback; | 
        
          | 56 | }; | 56 | }; | 
  
    | Lines 60-66
          subtest 'set_additional_fields with marcfield_mode = "set"' => sub {
      
      
        Link Here | 
        
          | 60 |  | 60 |  | 
        
          | 61 |     $schema->txn_begin; | 61 |     $schema->txn_begin; | 
        
          | 62 |  | 62 |  | 
          
            
              | 63 |     my $biblio = $builder->build_sample_biblio(); | 63 |     my $biblio       = $builder->build_sample_biblio(); | 
        
          | 64 |     my $subscription = Koha::Subscription->new( | 64 |     my $subscription = Koha::Subscription->new( | 
        
          | 65 |         { | 65 |         { | 
        
          | 66 |             biblionumber => $biblio->biblionumber, | 66 |             biblionumber => $biblio->biblionumber, | 
  
    | Lines 70-78
          subtest 'set_additional_fields with marcfield_mode = "set"' => sub {
      
      
        Link Here | 
        
          | 70 |  | 70 |  | 
        
          | 71 |     my $field = Koha::AdditionalField->new( | 71 |     my $field = Koha::AdditionalField->new( | 
        
          | 72 |         { | 72 |         { | 
          
            
              | 73 |             tablename => 'subscription', | 73 |             tablename      => 'subscription', | 
            
              | 74 |             name => random_string('c' x 100), | 74 |             name           => random_string( 'c' x 100 ), | 
            
              | 75 |             marcfield => '999$Z', | 75 |             marcfield      => '999$Z', | 
        
          | 76 |             marcfield_mode => 'set', | 76 |             marcfield_mode => 'set', | 
        
          | 77 |         } | 77 |         } | 
        
          | 78 |     ); | 78 |     ); | 
  
    | Lines 80-93
          subtest 'set_additional_fields with marcfield_mode = "set"' => sub {
      
      
        Link Here | 
        
          | 80 |     $subscription->set_additional_fields( | 80 |     $subscription->set_additional_fields( | 
        
          | 81 |         [ | 81 |         [ | 
        
          | 82 |             { | 82 |             { | 
          
            
              | 83 |                 id => $field->id, | 83 |                 id    => $field->id, | 
        
          | 84 |                 value => 'some value', | 84 |                 value => 'some value', | 
        
          | 85 |             }, | 85 |             }, | 
        
          | 86 |         ] | 86 |         ] | 
        
          | 87 |     ); | 87 |     ); | 
        
          | 88 |  | 88 |  | 
        
          | 89 |     my $record = $biblio->record; | 89 |     my $record = $biblio->record; | 
          
            
              | 90 |     is($record->subfield('999', 'Z'), 'some value', 'value was copied from the field to the biblio record'); | 90 |     is( $record->subfield( '999', 'Z' ), 'some value', 'value was copied from the field to the biblio record' ); | 
        
          | 91 |  | 91 |  | 
        
          | 92 |     $schema->txn_rollback; | 92 |     $schema->txn_rollback; | 
        
          | 93 | }; | 93 | }; | 
  
    | Lines 107-122
          subtest 'get_additional_field_values_for_template' => sub {
      
      
        Link Here | 
        
          | 107 |  | 107 |  | 
        
          | 108 |     my $field = Koha::AdditionalField->new( | 108 |     my $field = Koha::AdditionalField->new( | 
        
          | 109 |         { | 109 |         { | 
          
            
              | 110 |             tablename  => 'subscription', | 110 |             tablename => 'subscription', | 
            
              | 111 |             name       => random_string( 'c' x 100 ) | 111 |             name      => random_string( 'c' x 100 ) | 
        
          | 112 |         } | 112 |         } | 
        
          | 113 |     ); | 113 |     ); | 
        
          | 114 |     $field->store()->discard_changes(); | 114 |     $field->store()->discard_changes(); | 
        
          | 115 |  | 115 |  | 
        
          | 116 |     my $field2 = Koha::AdditionalField->new( | 116 |     my $field2 = Koha::AdditionalField->new( | 
        
          | 117 |         { | 117 |         { | 
          
            
              | 118 |             tablename  => 'subscription', | 118 |             tablename => 'subscription', | 
            
              | 119 |             name       => random_string( 'c' x 100 ) | 119 |             name      => random_string( 'c' x 100 ) | 
        
          | 120 |         } | 120 |         } | 
        
          | 121 |     ); | 121 |     ); | 
        
          | 122 |     $field2->store()->discard_changes(); | 122 |     $field2->store()->discard_changes(); | 
  
    | Lines 201-217
          subtest 'add_additional_fields' => sub {
      
      
        Link Here | 
        
          | 201 |  | 201 |  | 
        
          | 202 |     $subscription->add_additional_fields( | 202 |     $subscription->add_additional_fields( | 
        
          | 203 |         { | 203 |         { | 
          
            
              | 204 |             $field2->id => [ | 204 |             $field2->id => ['second field'], | 
            
              | 205 |                 'second field' |  |  | 
            
              | 206 |             ], | 
        
          | 207 |         }, | 205 |         }, | 
        
          | 208 |         'subscription' | 206 |         'subscription' | 
        
          | 209 |     ); | 207 |     ); | 
        
          | 210 |  | 208 |  | 
        
          | 211 |     my $template_additional_field_values = $subscription->get_additional_field_values_for_template; | 209 |     my $template_additional_field_values = $subscription->get_additional_field_values_for_template; | 
        
          | 212 |  | 210 |  | 
            
              | 213 |  |  |  | 
            
              | 214 |  | 
        
          | 215 |     is_deeply( | 211 |     is_deeply( | 
        
          | 216 |         $template_additional_field_values, | 212 |         $template_additional_field_values, | 
        
          | 217 |         { $field->id => [ $value . ' 1', $value . ' 2' ], $field2->id => ['second field'] }, | 213 |         { $field->id => [ $value . ' 1', $value . ' 2' ], $field2->id => ['second field'] }, | 
  
    | Lines 274-286
          subtest 'strings_map() tests' => sub {
      
      
        Link Here | 
        
          | 274 |         'erm_licenses' | 270 |         'erm_licenses' | 
        
          | 275 |     ); | 271 |     ); | 
        
          | 276 |  | 272 |  | 
          
            
              | 277 |  | 273 |     my $av_category = Koha::AuthorisedValueCategory->new( { category_name => "AV_CAT_NAME" } ); | 
            
              | 278 |     my $av_category      = Koha::AuthorisedValueCategory->new( { category_name => "AV_CAT_NAME" } ); |  |  | 
        
          | 279 |     $av_category->store()->discard_changes(); | 274 |     $av_category->store()->discard_changes(); | 
        
          | 280 |  | 275 |  | 
        
          | 281 |     my $av_value = Koha::AuthorisedValue->new( | 276 |     my $av_value = Koha::AuthorisedValue->new( | 
        
          | 282 |         { | 277 |         { | 
          
            
              | 283 |             category => $av_category->category_name, | 278 |             category         => $av_category->category_name, | 
        
          | 284 |             authorised_value => 'BOB', | 279 |             authorised_value => 'BOB', | 
        
          | 285 |             lib              => "Robert" | 280 |             lib              => "Robert" | 
        
          | 286 |         } | 281 |         } | 
  
    | Lines 295-305
          subtest 'strings_map() tests' => sub {
      
      
        Link Here | 
        
          | 295 |     ); | 290 |     ); | 
        
          | 296 |     $av_field->store()->discard_changes(); | 291 |     $av_field->store()->discard_changes(); | 
        
          | 297 |  | 292 |  | 
            
              | 298 |  |  |  | 
            
              | 299 |  | 
        
          | 300 |     $license->add_additional_fields( | 293 |     $license->add_additional_fields( | 
        
          | 301 |         { | 294 |         { | 
          
            
              | 302 |             $av_field->id => [$av_value->authorised_value], | 295 |             $av_field->id => [ $av_value->authorised_value ], | 
        
          | 303 |         }, | 296 |         }, | 
        
          | 304 |         'erm_licenses' | 297 |         'erm_licenses' | 
        
          | 305 |     ); | 298 |     ); | 
            
              | 306 | -  |  |  |