1 |
dpavlin |
78 |
#!/usr/bin/env perl |
2 |
|
|
use warnings; |
3 |
|
|
use strict; |
4 |
|
|
|
5 |
|
|
=head1 DESCRIPTION |
6 |
|
|
|
7 |
|
|
test SQL module |
8 |
|
|
|
9 |
|
|
=cut |
10 |
|
|
|
11 |
dpavlin |
159 |
use Jifty::Test tests => 20; |
12 |
dpavlin |
78 |
|
13 |
dpavlin |
159 |
use Data::Dump qw/dump/; |
14 |
|
|
|
15 |
dpavlin |
78 |
use_ok('A3C::SQL'); |
16 |
dpavlin |
145 |
use_ok('DBI'); |
17 |
dpavlin |
78 |
|
18 |
dpavlin |
145 |
my $query = 'select 42 as nr'; |
19 |
dpavlin |
78 |
|
20 |
|
|
ok( my $sql = A3C::SQL->new({ query => $query }), 'new' ); |
21 |
|
|
|
22 |
|
|
isa_ok( $sql, 'A3C::SQL' ); |
23 |
|
|
is( $sql->query, $query, 'sql' ); |
24 |
|
|
|
25 |
|
|
cmp_ok( $sql->count, '==', 1, 'count' ); |
26 |
|
|
|
27 |
|
|
ok( my $row = $sql->next, 'next' ); |
28 |
|
|
|
29 |
|
|
isa_ok( $row, 'A3C::SQL::row' ); |
30 |
|
|
|
31 |
dpavlin |
145 |
ok( $row->nr, 'row has accessor' ); |
32 |
dpavlin |
78 |
|
33 |
dpavlin |
145 |
diag $row->nr; |
34 |
|
|
is( $row->nr, 42, 'nr' ); |
35 |
|
|
|
36 |
dpavlin |
78 |
ok( ! $sql->next, 'last row' ); |
37 |
dpavlin |
145 |
|
38 |
|
|
ok( my $dbh = DBI->connect( 'DBI:Pg:dbname=template1' ), 'dbh' ); |
39 |
|
|
ok( my $sql = A3C::SQL->new({ query => "select 5 as nr", dbh => $dbh }), 'new' ); |
40 |
|
|
cmp_ok( $sql->count, '==', 1, 'count' ); |
41 |
dpavlin |
159 |
is_deeply( [ $sql->_column_names ], [ 'nr' ], '_column_names' ); |
42 |
|
|
is_deeply( scalar $sql->_column_names, 1, 'scalar _column_names' ); |
43 |
dpavlin |
145 |
ok( my $row2 = $sql->next, 'next' ); |
44 |
|
|
isa_ok( $row2, 'A3C::SQL::row' ); |
45 |
|
|
ok( $row2->nr, 'row has accessor' ); |
46 |
|
|
diag $row2->nr; |
47 |
|
|
is( $row2->nr, 5, 'nr' ); |
48 |
dpavlin |
159 |
|