]>
iEval git - gruntmaster-data.git/blob - t/Gruntmaster-Data.t
54861af544b218237a321ccfdfd9ed3bfb5bd289
11 Gruntmaster
:: Data
:: init
'dbi:Pg:dbname=gmtest' ; 1 ;
12 } or plan skip_all
=> 'Cannot connect to test database. Create it by running createdb gmtest before running this test. ' . "Error: $@" ;
16 note
'Setting up test database' ;
17 $ENV { PGOPTIONS
} = '-c client_min_messages=WARNING' ;
18 system 'psql' , 'gmtest' , '-qf' , 'db.sql' ;
19 system 'psql' , 'gmtest' , '-qf' , 'testdata.sql' ;
21 note
'Running update_status' ;
24 my $x = user_list
->{ us
};
25 is @
$x , 2 , 'user_list has two elements' ;
26 is_deeply
$x ->[ 0 ], { id
=> 'nobody' , admin
=> 0 , name
=> undef , town
=> undef , university
=> undef , country
=> undef , level
=> undef , lastjob
=> undef , contests
=> 1 , solved
=> 2 , attempted
=> 0 }, 'user_list first element is correct' ;
27 is
$x ->[ 1 ]{ admin
}, 1 , 'user_list second user is admin' ;
29 $x = user_entry
'nobody' ;
30 cmp_bag
$x ->{ problems
}, [
31 { problem
=> 'arc' , problem_name
=> 'Problem in archive' , solved
=> bool
1 },
32 { problem
=> 'fca' , problem_name
=> 'FC problem A' , solved
=> bool
1 },
33 ], 'user_entry problems' ;
35 is_deeply
$x ->{ contests
}, [
36 { contest
=> 'fc' , contest_name
=> 'Finished contest' , rank
=> 2 , score
=> 40 },
37 ], 'user_entry contests' ;
39 sub pbids
{ [ map { $_ ->{ id
} } @
{ $x ->{ beginner
}}] }
42 cmp_bag pbids
, [ qw
/arc fca/ ], 'problem_list' ;
44 $x = problem_list private
=> 1 ;
45 cmp_bag pbids
, [ qw
/arc fca rca pca prv/ ], 'problem_list private => 1' ;
47 $x = problem_list contest
=> 'rc' ;
48 cmp_bag pbids
, [ qw
/rca/ ], q
/problem_list contest => 'rc'/ ;
50 $x = problem_list contest
=> 'rc' , solution
=> 1 ;
51 ok
exists $x ->{ beginner
}[ 0 ]{ solution
}, q
/problem_list contest => 'rc', solution => 1 has solution/ ;
53 $x = problem_list owner
=> 'nobody' ;
54 cmp_bag pbids
, [], q
/problem_list owner => 'nobody'/ ;
56 $x = problem_entry
'arc' ;
57 cmp_bag
$x ->{ limits
}, [{ format
=> 'C' , timeout
=> 0.1 }, { format
=> 'CPP' , timeout
=> 0.1 }], 'problem_entry limits' ;
58 is
$x ->{ solution
}, 'Sample Text' , 'problem_entry has solution' ;
60 $x = problem_entry
'rca' , 'rc' ;
61 ok
! exists $x ->{ solution
}, 'problem_entry during contest does not have solution' ;
62 ok
exists $x ->{ contest_start
}, 'problem_entry during contest has contest_start ' ;
65 is
$x ->{ finished
}[ 0 ]{ id
}, 'fc' , 'contest_list fc is finished' ;
66 is
$x ->{ running
}[ 0 ]{ id
}, 'rc' , 'contest_list rc is running' ;
67 is
$x ->{ pending
}[ 0 ]{ id
}, 'pc' , 'contest_list pc is pending' ;
69 $x = contest_entry
'fc' ;
70 cmp_deeply
$x , { id
=> 'fc' , name
=> 'Finished contest' , start
=> ignore
, stop
=> ignore
, owner
=> 'MGV' , owner_name
=> undef , finished
=> bool
( 1 ), started
=> bool
( 1 ), description
=> undef }, 'contest_entry fc' ;
72 $x = contest_full
'fc' ;
73 ok
exists $x ->{ editorial
}, 'contest_full fc has editorial' ;
75 ok contest_has_problem
( 'rc' , 'rca' ), 'contest rc has problem rca' ;
76 ok contest_has_problem
( 'rc' , 'arc' ), 'contest rc does not have problem arc' ;
78 sub jobids
{ [ map { $_ ->{ id
} } @
{ $x ->{ log }} ] }
81 cmp_bag jobids
, [ 1 . .5 ], 'job_list' ;
82 is
$x ->{ current_page
}, 1 , 'current page is 1' ;
83 is
$x ->{ last_page
}, 1 , 'last page is 1' ;
84 ok
! exists $x ->{ previous_page
}, 'there is no previous page' ;
85 ok
! exists $x ->{ next_page
}, 'there is no next page' ;
87 $x = job_list private
=> 1 ;
88 cmp_bag jobids
, [ 1 . .7 ], 'job_list private => 1' ;
90 $x = job_list contest
=> 'fc' ;
91 cmp_bag jobids
, [ 1 . .3 ], 'job_list contest => fc' ;
93 $x = job_list owner
=> 'MGV' ;
94 cmp_bag jobids
, [ 1 ], 'job_ids owner => MGV' ;
96 $x = job_list problem
=> 'fca' ;
97 cmp_bag jobids
, [ 1 . .4 ], 'job_ids problem => fca' ;
99 $x = job_list problem
=> 'fca' , result
=> 1 ;
100 cmp_bag jobids
, [ 2 ], 'job_ids problem => fca, result => 1' ;
103 is
$x ->{ size
}, 21 , 'job_entry size' ;
104 ok
! exists $x ->{ source
}, 'job_entry does not have source' ;
105 is_deeply
$x ->{ results
}, [], 'job_entry results' ;
108 ok
! defined $x ->{ result
}, 'job_entry 7 has NULL result' ;
111 ok
exists $x ->{ source
}, 'job_full has source' ;
115 problems
=> [[ fca
=> 'FC problem A' ]],
117 { rank
=> 1 , user
=> 'MGV' , user_name
=> undef , score
=> 50 , scores
=> [ 50 ]},
118 { rank
=> 2 , user
=> 'nobody' , user_name
=> undef , score
=> 40 , scores
=> [ 40 ]},
This page took 0.04814 seconds and 3 git commands to generate.