]>
iEval git - gruntmaster-data.git/blob - t/Gruntmaster-Data.t
0c77a410276fb3e0ce7b2111c08d6cac55a7aabe
11 dbinit
'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' ;
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 ids
{ [ map { $_ ->{ id
} } @
$x ] }
42 cmp_bag ids
, [ qw
/arc fca/ ], 'problem_list' ;
44 $x = problem_list private
=> 1 ;
45 cmp_bag ids
, [ qw
/arc fca rca pca prv/ ], 'problem_list private => 1' ;
47 $x = problem_list contest
=> 'rc' ;
48 cmp_bag ids
, [ qw
/rca/ ], q
/problem_list contest => 'rc'/ ;
50 $x = problem_list contest
=> 'rc' , solution
=> 1 ;
51 ok
exists $x ->[ 0 ]{ solution
}, q
/problem_list contest => 'rc', solution => 1 has solution/ ;
53 $x = problem_list owner
=> 'nobody' ;
54 cmp_bag ids
, [], 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 cmp_bag ids
, [ qw
/pc rc fc/ ], 'contest_list' ;
67 $x = contest_entry
'fc' ;
68 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' ;
70 ok contest_has_problem
( 'rc' , 'rca' ), 'contest rc has problem rca' ;
71 ok contest_has_problem
( 'rc' , 'arc' ), 'contest rc does not have problem arc' ;
74 ( $x , $pageinfo ) = job_list
;
75 cmp_bag ids
, [ 1 . .5 ], 'job_list' ;
76 is
$pageinfo ->{ current_page
}, 1 , 'current page is 1' ;
77 is
$pageinfo ->{ last_page
}, 1 , 'last page is 1' ;
78 ok
! exists $pageinfo ->{ previous_page
}, 'there is no previous page' ;
79 ok
! exists $pageinfo ->{ next_page
}, 'there is no next page' ;
81 $x = job_list private
=> 1 ;
82 cmp_bag ids
, [ 1 . .7 ], 'job_list private => 1' ;
84 $x = job_list contest
=> 'fc' ;
85 cmp_bag ids
, [ 1 . .3 ], 'job_list contest => fc' ;
87 $x = job_list owner
=> 'MGV' ;
88 cmp_bag ids
, [ 1 ], 'job_ids owner => MGV' ;
90 $x = job_list problem
=> 'fca' ;
91 cmp_bag ids
, [ 1 . .4 ], 'job_ids problem => fca' ;
93 $x = job_list problem
=> 'fca' , result
=> 1 ;
94 cmp_bag ids
, [ 2 ], 'job_ids problem => fca, result => 1' ;
97 is
$x ->{ size
}, 21 , 'job_entry size' ;
98 ok
! exists $x ->{ source
}, 'job_entry does not have source' ;
99 is_deeply
$x ->{ results
}, [], 'job_entry results' ;
102 ok
! defined $x ->{ result
}, 'job_entry 7 has NULL result' ;
104 open_problem qw
/fc fca MGV/ , contest_entry
( 'fc' )->{ start
} + 300 ;
109 { rank
=> 1 , user
=> 'MGV' , user_name
=> undef , score
=> 80 , scores
=> [ 80 ]},
110 { rank
=> 2 , user
=> 'nobody' , user_name
=> undef , score
=> 40 , scores
=> [ 40 ]},
113 db
-> delete ( 'opens' , { contest
=> 'fc' , problem
=> 'fca' , owner
=> 'MGV' });
This page took 0.06907 seconds and 5 git commands to generate.