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

(-)a/t/db_dependent/cronjobs/advance_notices_digest.t (-54 / +61 lines)
Lines 19-33 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use Test::More tests => 8;
22
use Test::More tests => 2;
23
use t::lib::TestBuilder;
23
use t::lib::TestBuilder;
24
use DateTime;
24
use t::lib::Mocks;
25
use File::Spec;
25
use File::Spec;
26
use File::Basename;
26
use File::Basename;
27
use Data::Dumper;
27
28
use Koha::DateUtils;
28
29
29
my $scriptDir = dirname(File::Spec->rel2abs( __FILE__ ));
30
my $scriptDir = dirname(File::Spec->rel2abs( __FILE__ ));
30
31
32
my $schema  = Koha::Database->new->schema;
31
my $dbh = C4::Context->dbh;
33
my $dbh = C4::Context->dbh;
32
34
33
my $library1;
35
my $library1;
Lines 36-46 my $library3; Link Here
36
my $borrower;
38
my $borrower;
37
39
38
sub build_test_objects {
40
sub build_test_objects {
39
    $dbh->{AutoCommit} = 0;
41
40
    $dbh->{RaiseError} = 1;
42
    $dbh->{RaiseError} = 1;
41
43
42
    # Set only to avoid exception.
44
    # Set only to avoid exception.
43
    $ENV{"OVERRIDE_SYSPREF_dateformat"} = 'metric';
45
    t::lib::Mocks::mock_preference('dateformat', 'metric');
44
46
45
    my $builder = t::lib::TestBuilder->new;
47
    my $builder = t::lib::TestBuilder->new;
46
48
Lines 126-132 DELETESQL Link Here
126
    my $item3 = $builder->build({
128
    my $item3 = $builder->build({
127
        source => 'Item'
129
        source => 'Item'
128
    });
130
    });
129
    my $now = DateTime->now();
131
    my $now = dt_from_string();
130
    my $tomorrow = $now->add(days => 1)->strftime('%F');
132
    my $tomorrow = $now->add(days => 1)->strftime('%F');
131
133
132
    my $issue1 = $builder->build({
134
    my $issue1 = $builder->build({
Lines 191-262 close $scriptfh; Link Here
191
193
192
my $sthmq = $dbh->prepare('SELECT * FROM message_queue WHERE borrowernumber = ?');
194
my $sthmq = $dbh->prepare('SELECT * FROM message_queue WHERE borrowernumber = ?');
193
195
194
#
196
subtest 'Default behaviour tests' => sub {
195
# Test default behavior
196
#
197
197
198
build_test_objects();
198
    plan tests => 3;
199
199
200
run_script($scriptContent, 'advanced_notices.pl', '-c');
200
    $schema->storage->txn_begin;
201
201
202
$sthmq->execute($borrower->{borrowernumber});
202
    build_test_objects();
203
203
204
my $messages = $sthmq->fetchall_hashref('message_id');
204
    run_script($scriptContent, 'advanced_notices.pl', '-c');
205
205
206
is(scalar(keys %$messages), 1, 'There is one message in the queue');
206
    $sthmq->execute($borrower->{borrowernumber});
207
207
208
for my $message (keys %$messages) {
208
    my $messages = $sthmq->fetchall_hashref('message_id');
209
    $messages->{$message}->{content} =~ /(\d+) (.*)/;
210
    my $count = $1;
211
    my $branchname = $2;
212
209
213
    is ($count, '3', 'Issue count is 3');
210
    is(scalar(keys %$messages), 1, 'There is one message in the queue');
214
    is ($branchname, $library1->{branchname}, 'Branchname is that of borrowers home branch.');
215
}
216
211
217
$dbh->rollback;
212
    for my $message (keys %$messages) {
213
        $messages->{$message}->{content} =~ /(\d+) (.*)/;
214
        my $count = $1;
215
        my $branchname = $2;
218
216
219
#
217
        is ($count, '3', 'Issue count is 3');
220
# Test -digest-per-branch
218
        is ($branchname, $library1->{branchname}, 'Branchname is that of borrowers home branch.');
221
#
219
    }
222
220
223
build_test_objects();
221
    $schema->storage->txn_rollback;
222
};
224
223
225
run_script($scriptContent, 'advanced_notices.pl', '-c', '-digest-per-branch');
224
subtest '--digest-per-branch tests' => sub {
226
225
227
$sthmq->execute($borrower->{borrowernumber});
226
    plan tests => 5;
228
227
229
$messages = $sthmq->fetchall_hashref('message_id');
228
    $schema->storage->txn_begin;
230
229
231
is(scalar(keys %$messages), 2, 'There are two messages in the queue');
230
    build_test_objects();
232
231
233
my %expected = (
232
    run_script($scriptContent, 'advanced_notices.pl', '-c', '-digest-per-branch');
234
    $library2->{branchname} => {
233
235
        count => 1,
234
    $sthmq->execute($borrower->{borrowernumber});
236
    },
237
    $library3->{branchname} => {
238
        count => 2,
239
    }
240
 );
241
235
242
my %expected_branchnames = (
236
    my $messages = $sthmq->fetchall_hashref('message_id');
243
    $library2->{branchname} => 1,
244
    $library3->{branchname} => 1
245
);
246
237
247
my $i = 0;
238
    is(scalar(keys %$messages), 2, 'There are two messages in the queue');
248
for my $message (keys %$messages) {
249
    $messages->{$message}->{content} =~ /(\d+) (.*)/;
250
    my $count = $1;
251
    my $branchname = $2;
252
239
253
    ok ($expected_branchnames{$branchname}, 'Branchname is that of expected issuing branch.');
240
    my %expected = (
241
        $library2->{branchname} => {
242
            count => 1,
243
        },
244
        $library3->{branchname} => {
245
            count => 2,
246
        }
247
     );
254
248
255
    $expected_branchnames{$branchname} = 0;
249
    my %expected_branchnames = (
250
        $library2->{branchname} => 1,
251
        $library3->{branchname} => 1
252
    );
256
253
257
    is ($count, $expected{$branchname}->{count}, 'Issue count is ' . $expected{$branchname}->{count});
254
    my $i = 0;
255
    for my $message (keys %$messages) {
256
        $messages->{$message}->{content} =~ /(\d+) (.*)/;
257
        my $count = $1;
258
        my $branchname = $2;
258
259
259
    $i++;
260
        ok ($expected_branchnames{$branchname}, 'Branchname is that of expected issuing branch.');
260
}
261
262
        $expected_branchnames{$branchname} = 0;
263
264
        is ($count, $expected{$branchname}->{count}, 'Issue count is ' . $expected{$branchname}->{count});
265
266
        $i++;
267
    }
261
268
262
$dbh->rollback;
269
    $schema->storage->txn_rollback;
270
};
263
- 

Return to bug 20478