| Lines 19-25
          
      
      
        Link Here | 
        
          | 19 |  | 19 |  | 
        
          | 20 | use Modern::Perl; | 20 | use Modern::Perl; | 
        
          | 21 |  | 21 |  | 
          
            
              | 22 | use Test::More tests => 4; | 22 | use Test::More tests => 5; | 
        
          | 23 |  | 23 |  | 
        
          | 24 | use t::lib::Mocks; | 24 | use t::lib::Mocks; | 
        
          | 25 | use t::lib::TestBuilder; | 25 | use t::lib::TestBuilder; | 
  
    | Lines 148-153
          subtest 'Test Koha::Patron::Message::Preferences->get_options' => sub {
      
      
        Link Here | 
        
          | 148 |     }; | 148 |     }; | 
        
          | 149 | }; | 149 | }; | 
        
          | 150 |  | 150 |  | 
            
              |  |  | 151 | subtest 'Add preferences from defaults' => sub { | 
            
              | 152 |     plan tests => 3; | 
            
              | 153 |  | 
            
              | 154 |     $schema->storage->txn_begin; | 
            
              | 155 |  | 
            
              | 156 |     my $patron = build_a_test_patron(); | 
            
              | 157 |     my ($default, $mtt1, $mtt2) = build_a_test_category_preference({ | 
            
              | 158 |         patron => $patron, | 
            
              | 159 |     }); | 
            
              | 160 |     ok(Koha::Patron::Message::Preference->new_from_default({ | 
            
              | 161 |         borrowernumber       => $patron->borrowernumber, | 
            
              | 162 |         categorycode         => $patron->categorycode, | 
            
              | 163 |         message_attribute_id => $default->message_attribute_id, | 
            
              | 164 |     })->store, 'Added a default preference to patron.'); | 
            
              | 165 |     ok(my $pref = Koha::Patron::Message::Preferences->find({ | 
            
              | 166 |         borrowernumber       => $patron->borrowernumber, | 
            
              | 167 |         message_attribute_id => $default->message_attribute_id, | 
            
              | 168 |     }), 'Found the default preference from patron.'); | 
            
              | 169 |     is(Koha::Patron::Message::Transport::Preferences->search({ | 
            
              | 170 |         borrower_message_preference_id => $pref->borrower_message_preference_id | 
            
              | 171 |     })->count, 2, 'Found the two transport types that we set earlier'); | 
            
              | 172 |  | 
            
              | 173 |     $schema->storage->txn_rollback; | 
            
              | 174 | }; | 
            
              | 175 |  | 
        
          | 151 | subtest 'Test adding a new preference with invalid parameters' => sub { | 176 | subtest 'Test adding a new preference with invalid parameters' => sub { | 
        
          | 152 |     plan tests => 4; | 177 |     plan tests => 4; | 
        
          | 153 |  | 178 |  | 
  
    | Lines 280-285
          sub build_a_test_category {
      
      
        Link Here | 
        
          | 280 |     return Koha::Patron::Categories->find($categorycode); | 305 |     return Koha::Patron::Categories->find($categorycode); | 
        
          | 281 | } | 306 | } | 
        
          | 282 |  | 307 |  | 
            
              |  |  | 308 | sub build_a_test_letter { | 
            
              | 309 |     my ($params) = @_; | 
            
              | 310 |  | 
            
              | 311 |     my $mtt = $params->{mtt} ? $params->{mtt} : 'email'; | 
            
              | 312 |     my $branchcode     = $builder->build({ | 
            
              | 313 |         source => 'Branch' })->{branchcode}; | 
            
              | 314 |     my $letter = $builder->build({ | 
            
              | 315 |         source => 'Letter', | 
            
              | 316 |         value => { | 
            
              | 317 |             branchcode => '', | 
            
              | 318 |             is_html => 0, | 
            
              | 319 |             message_transport_type => $mtt | 
            
              | 320 |         } | 
            
              | 321 |     }); | 
            
              | 322 |  | 
            
              | 323 |     return Koha::Notice::Templates->find({ | 
            
              | 324 |         module     => $letter->{module}, | 
            
              | 325 |         code       => $letter->{code}, | 
            
              | 326 |         branchcode => $letter->{branchcode}, | 
            
              | 327 |     }); | 
            
              | 328 | } | 
            
              | 329 |  | 
        
          | 283 | sub build_a_test_patron { | 330 | sub build_a_test_patron { | 
        
          | 284 |     my $categorycode   = $builder->build({ | 331 |     my $categorycode   = $builder->build({ | 
        
          | 285 |         source => 'Category' })->{categorycode}; | 332 |         source => 'Category' })->{categorycode}; | 
  
    | Lines 291-294
          sub build_a_test_patron {
      
      
        Link Here | 
        
          | 291 |     return Koha::Patrons->find($borrowernumber); | 338 |     return Koha::Patrons->find($borrowernumber); | 
        
          | 292 | } | 339 | } | 
        
          | 293 |  | 340 |  | 
            
              |  |  | 341 | sub build_a_test_transport_type { | 
            
              | 342 |     my $mtt = $builder->build({ | 
            
              | 343 |         source => 'MessageTransportType' }); | 
            
              | 344 |  | 
            
              | 345 |     return Koha::Patron::Message::Transport::Types->find( | 
            
              | 346 |         $mtt->{message_transport_type} | 
            
              | 347 |     ); | 
            
              | 348 | } | 
            
              | 349 |  | 
            
              | 350 | sub build_a_test_category_preference { | 
            
              | 351 |     my ($params) = @_; | 
            
              | 352 |  | 
            
              | 353 |     my $patron = $params->{patron}; | 
            
              | 354 |     my $attr = $params->{attr} | 
            
              | 355 |                     ? $params->{attr} | 
            
              | 356 |                     : build_a_test_attribute($params->{days_in_advance}); | 
            
              | 357 |  | 
            
              | 358 |     my $letter = $params->{letter} ? $params->{letter} : build_a_test_letter(); | 
            
              | 359 |     my $mtt1 = $params->{mtt1} ? $params->{mtt1} : build_a_test_transport_type(); | 
            
              | 360 |     my $mtt2 = $params->{mtt2} ? $params->{mtt2} : build_a_test_transport_type(); | 
            
              | 361 |  | 
            
              | 362 |     Koha::Patron::Message::Transport->new({ | 
            
              | 363 |         message_attribute_id   => $attr->message_attribute_id, | 
            
              | 364 |         message_transport_type => $mtt1->message_transport_type, | 
            
              | 365 |         is_digest              => $params->{digest} ? 1 : 0, | 
            
              | 366 |         letter_module          => $letter->module, | 
            
              | 367 |         letter_code            => $letter->code, | 
            
              | 368 |     })->store; | 
            
              | 369 |  | 
            
              | 370 |     Koha::Patron::Message::Transport->new({ | 
            
              | 371 |         message_attribute_id   => $attr->message_attribute_id, | 
            
              | 372 |         message_transport_type => $mtt2->message_transport_type, | 
            
              | 373 |         is_digest              => $params->{digest} ? 1 : 0, | 
            
              | 374 |         letter_module          => $letter->module, | 
            
              | 375 |         letter_code            => $letter->code, | 
            
              | 376 |     })->store; | 
            
              | 377 |  | 
            
              | 378 |     my $default = Koha::Patron::Message::Preference->new({ | 
            
              | 379 |         categorycode         => $patron->categorycode, | 
            
              | 380 |         message_attribute_id => $attr->message_attribute_id, | 
            
              | 381 |         wants_digest         => $params->{digest} ? 1 : 0, | 
            
              | 382 |         days_in_advance      => $params->{days_in_advance} | 
            
              | 383 |                                  ? $params->{days_in_advance} : 0, | 
            
              | 384 |     })->store; | 
            
              | 385 |  | 
            
              | 386 |     Koha::Patron::Message::Transport::Preference->new({ | 
            
              | 387 |         borrower_message_preference_id => $default->borrower_message_preference_id, | 
            
              | 388 |         message_transport_type         => $mtt1->message_transport_type, | 
            
              | 389 |     })->store; | 
            
              | 390 |     Koha::Patron::Message::Transport::Preference->new({ | 
            
              | 391 |         borrower_message_preference_id => $default->borrower_message_preference_id, | 
            
              | 392 |         message_transport_type         => $mtt2->message_transport_type, | 
            
              | 393 |     })->store; | 
            
              | 394 |  | 
            
              | 395 |     return ($default, $mtt1, $mtt2); | 
            
              | 396 | } | 
            
              | 397 |  | 
        
          | 294 | 1; | 398 | 1; | 
            
              | 295 | -  |  |  |