View | Details | Raw Unified | Return to bug 16149
Collapse All | Expand All

(-)a/t/db_dependent/Reports/Guided.t (-2 / +54 lines)
Lines 18-30 Link Here
18
18
19
use Modern::Perl;
19
use Modern::Perl;
20
20
21
use Test::More tests => 9;
21
use Test::More tests => 10;
22
use Test::Warn;
22
use Test::Warn;
23
23
24
use t::lib::TestBuilder;
24
use t::lib::TestBuilder;
25
use C4::Context;
25
use C4::Context;
26
use Koha::Database;
26
use Koha::Database;
27
use Koha::Reports;
27
use Koha::Reports;
28
use Koha::Notice::Messages;
28
29
29
use_ok('C4::Reports::Guided');
30
use_ok('C4::Reports::Guided');
30
can_ok(
31
can_ok(
Lines 355-360 count(h.reservedate) AS 'holds' Link Here
355
    is( C4::Reports::Guided::convert_sql( $sql ), $expected_converted_sql, "Query with multiple instances of marcxml and biblioitems should have them all replaced");
356
    is( C4::Reports::Guided::convert_sql( $sql ), $expected_converted_sql, "Query with multiple instances of marcxml and biblioitems should have them all replaced");
356
};
357
};
357
358
359
subtest 'Email report test' => sub {
360
361
    plan tests => 8;
362
363
    my $id1 = $builder->build({ source => 'Borrower',value => { surname => 'mailer', email => 'a@b.com' } })->{ borrowernumber };
364
    my $id2 = $builder->build({ source => 'Borrower',value => { surname => 'nomailer', email => undef } })->{ borrowernumber };
365
    my $report1 = $builder->build({ source => 'SavedSql', value => { savedsql => "SELECT surname,borrowernumber,email FROM borrowers WHERE borrowernumber IN ($id1,$id2)" } })->{ id };
366
    my $report2 = $builder->build({ source => 'SavedSql', value => { savedsql => "SELECT potato FROM mashed" } })->{ id };
367
368
    my $letter1 = $builder->build({
369
            source => 'Letter',
370
            value => {
371
                content => "[% surname %]",
372
                branchcode => "",
373
                message_transport_type => 'email'
374
            }
375
        });
376
    my $letter2 = $builder->build({
377
            source => 'Letter',
378
            value => {
379
                content => "[% firstname %]",
380
                branchcode => "",
381
                message_transport_type => 'email'
382
            }
383
        });
384
385
    my $message_count = Koha::Notice::Messages->search({})->count;
386
387
    my ( $emails, $errors ) = C4::Reports::Guided::EmailReport();
388
    is( $errors->[0]{FATAL}, 'MISSING_PARAMS', "Need to enter required params");
389
390
    ($emails, $errors ) = C4::Reports::Guided::EmailReport({report_id => $report1, module => $letter1->{module}, code => $letter2->{code}});
391
    is( $errors->[0]{FATAL}, 'NO_LETTER', "Must have a letter that exists");
392
393
    warning_like { ($emails, $errors ) = C4::Reports::Guided::EmailReport({report_id => $report2, module => $letter1->{module} , code => $letter1->{code} }) }
394
        qr/^DBD::mysql::st execute failed/,
395
        'Error from bad report';
396
    is( $errors->[0]{FATAL}, 'REPORT_FAIL', "Bad report returns failure");
397
398
    ($emails, $errors ) = C4::Reports::Guided::EmailReport({report_id => $report1, module => $letter1->{module} , code => $letter1->{code} });
399
    is( $errors->[0]{NO_FROM_COL} == 1 && $errors->[1]{NO_EMAIL_COL} == 2  && $errors->[2]{NO_FROM_COL} == 2, 1, "Correct warnings from the routine");
400
401
    ($emails, $errors ) = C4::Reports::Guided::EmailReport({report_id => $report1, module => $letter1->{module} , code => $letter1->{code}, from => 'the@future.ooh' });
402
    is( $errors->[0]{NO_EMAIL_COL}, 2, "Warning only for patron with no email");
403
404
    is( $message_count,  Koha::Notice::Messages->search({})->count, "Messages not added without commit");
405
406
    ($emails, $errors ) = C4::Reports::Guided::EmailReport({report_id => $report1, module => $letter1->{module} , code => $letter1->{code}, from => 'the@future.ooh' });
407
    is( $emails->[0]{letter}->{content}, "mailer", "Message has expected content");
408
409
};
410
358
$schema->storage->txn_rollback;
411
$schema->storage->txn_rollback;
359
412
360
sub trim {
413
sub trim {
361
- 

Return to bug 16149