[219] | 1 | use strict; |
---|
| 2 | use warnings; |
---|
[320] | 3 | use Test::More tests => 14; |
---|
[219] | 4 | |
---|
| 5 | # $Id$ |
---|
| 6 | |
---|
[242] | 7 | use_ok 'Epoll', 'Epoll'; |
---|
| 8 | use_ok 'Epoll::DB'; |
---|
[219] | 9 | $ENV{EPOLL_NO_COMMIT} = 1; |
---|
[242] | 10 | isa_ok(my $vote = Epoll::DB->new(Epoll->config->{db}), 'Epoll::DB'); |
---|
[219] | 11 | |
---|
[309] | 12 | ok(my $pollid = $vote->_create_poll('test@', "Vote test", "password"), |
---|
[219] | 13 | "can create a new poll"); |
---|
| 14 | |
---|
[242] | 15 | isa_ok(my $poll = $vote->poll($pollid), 'Epoll::DB::Poll'); |
---|
[219] | 16 | |
---|
| 17 | ok($poll->gen_poll_keys('keypass'), 'can generate poll keys'); |
---|
| 18 | |
---|
| 19 | $poll->addupd_voting($_) foreach (qw(a b c)); |
---|
| 20 | |
---|
| 21 | $poll->register_ballot('a', ['ch', 'ch2'], 'localhost'); |
---|
| 22 | $poll->register_ballot('b', ['ch'], 'localhost'); |
---|
| 23 | $poll->register_ballot('c', [], 'localhost'); |
---|
| 24 | |
---|
[320] | 25 | |
---|
| 26 | ok($poll->decrypted_ballots('keypass'), "Can decrypt ballot"); |
---|
| 27 | ok($poll->compute_results, "Can compute results"); |
---|
[242] | 28 | isa_ok(my $results = $vote->results($pollid), 'Epoll::DB::Poll'); |
---|
[219] | 29 | |
---|
| 30 | is($results->ballot_count_crypt, 3, "ballot count is 3"); |
---|
| 31 | is($results->ballot_count_clear, 3, "ballot count is 3"); |
---|
| 32 | |
---|
| 33 | ok(my $res = $results->results, "can get results"); |
---|
| 34 | is($res->[0]->{value}, 'ch', "winner is ch"); |
---|
| 35 | is($res->[0]->{count}, 2, "winner has two voices"); |
---|
| 36 | |
---|
| 37 | $vote->db->rollback; # really rollback |
---|