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

(-)a/t/db_dependent/BackgroundJob.t (-32 / +41 lines)
Lines 1-49 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
#
3
# This Koha test module is a stub!  
4
# Add more tests here!!!
5
2
6
use strict;
3
use Modern::Perl;
7
use warnings;
8
use C4::Auth;
4
use C4::Auth;
9
use CGI qw ( -utf8 );
5
use CGI qw ( -utf8 );
10
use Test::More tests => 14;
6
use Test::More tests => 18;
11
7
12
BEGIN {
8
BEGIN {
13
        use_ok('C4::BackgroundJob');
9
    use_ok('C4::BackgroundJob');
14
}
10
}
15
my $query = new CGI;
11
my $query = new CGI;
16
my ($userid, $cookie, $sessionID) = &checkauth($query, 1);
17
#my ($sessionID, $job_name, $job_invoker, $num_work_units) = @_;
18
my $background;
19
diag $sessionID;
20
ok ($background=C4::BackgroundJob->new($sessionID), "making job");
21
ok ($background->id, "fetching id number");
22
12
23
$background->name("George");
13
# Generate a session id
24
is ($background->name, "George", "testing name");
14
my $dbh     = C4::Context->dbh;
15
$dbh->{AutoCommit} = 1;
16
$dbh->{RaiseError} = 1;
25
17
26
$background->invoker("enjoys");
18
my $session = C4::Auth::get_session;
27
is ($background->invoker, "enjoys", "testing invoker");
19
$session->flush;
20
my $sessionID = $session->id;
21
my $job;
22
ok( $job = C4::BackgroundJob->new($sessionID), "making job" );
23
ok( $job->id, "fetching id number" );
28
24
29
$background->progress("testing");
25
$job->name("George");
30
is ($background->progress, "testing", "testing progress");
26
is( $job->name, "George", "testing name" );
31
27
32
ok ($background->status, "testing status");
28
$job->invoker("enjoys");
29
is( $job->invoker, "enjoys", "testing invoker" );
33
30
34
$background->size("56");
31
$job->progress("testing");
35
is ($background->size, "56", "testing size");
32
is( $job->progress, "testing", "testing progress" );
36
33
37
ok (!$background->fetch($sessionID, $background->id), "testing fetch");
34
ok( $job->status, "testing status" );
38
35
39
$background->set({ key1 => 'value1', key2 => 'value2' });
36
$job->size("56");
40
is ($background->get('key1'), 'value1', 'fetched extra value for key key1');
37
is( $job->size, "56", "testing size" );
41
is ($background->get('key2'), 'value2', 'fetched extra value for key key2');
42
38
43
$background->set({ size => 666 });
39
ok( C4::BackgroundJob->fetch( $sessionID, $job->id ), "testing fetch" );
44
is ($background->size, "56", '->set() does not scribble over private object data');
40
$job->set( { key1 => 'value1', key2 => 'value2' } );
41
is( $job->get('key1'), 'value1', 'fetched extra value for key key1' );
42
is( $job->get('key2'), 'value2', 'fetched extra value for key key2' );
45
43
46
$background->finish("finished");
44
$job->set( { size => 666 } );
47
is ($background->status,'completed', "testing finished");
45
is( $job->size, "56", '->set() does not scribble over private object data' );
48
46
49
ok ($background->results); #Will return undef unless finished
47
$job->finish("finished");
48
is( $job->status, 'completed', "testing finished" );
49
50
ok( $job->results );    #Will return undef unless finished
51
52
my $second_job = C4::BackgroundJob->new( $sessionID, "making new job" );
53
$session = C4::Auth::get_session( $job->{sessionID} );
54
is( ref( $session->param( 'job_' . $job->id ) ),        "C4::BackgroundJob", 'job_$jobid should be a C4::BackgroundJob for uncleared job 1' );
55
is( ref( $session->param( 'job_' . $second_job->id ) ), "C4::BackgroundJob", 'job_$jobid should be a C4::BackgroundJob for uncleared job 2' );
56
$job->clear;
57
$session = C4::Auth::get_session( $job->{sessionID} );
58
is( $session->param( 'job_' . $job->id ), undef, 'After clearing it, job 1 should not exist anymore in the session' );
59
is( ref( $session->param( 'job_' . $second_job->id ) ), "C4::BackgroundJob", 'After clear on job 1, job 2 should still be a C4::BackgroundJob' );
50
- 

Return to bug 13606