--- t/20-sql.t 2008/04/11 23:22:03 78 +++ t/20-sql.t 2008/06/22 14:55:55 220 @@ -8,11 +8,14 @@ =cut -use Jifty::Test tests => 9; +use Jifty::Test tests => 25; + +use Data::Dump qw/dump/; use_ok('A3C::SQL'); +use_ok('DBI'); -my $query = 'select now()'; +my $query = 'select 42 as nr'; ok( my $sql = A3C::SQL->new({ query => $query }), 'new' ); @@ -21,10 +24,31 @@ cmp_ok( $sql->count, '==', 1, 'count' ); +ok( my $duration = $sql->duration, 'duration' ); +diag "duration: $duration"; + ok( my $row = $sql->next, 'next' ); isa_ok( $row, 'A3C::SQL::row' ); -ok( $row->now, 'row has accessor' ); +ok( $row->nr, 'row has accessor' ); + +is( $row->nr, 42, 'nr' ); ok( ! $sql->next, 'last row' ); + +ok( my $dbh = DBI->connect( 'DBI:Pg:dbname=template1' ), 'dbh' ); +ok( $sql = A3C::SQL->new({ query => "select 5 as nr", dbh => $dbh }), 'new' ); +cmp_ok( $sql->count, '==', 1, 'count' ); +is_deeply( [ $sql->_column_names ], [ 'nr' ], '_column_names' ); +is_deeply( scalar $sql->_column_names, 1, 'scalar _column_names' ); +ok( my $row2 = $sql->next, 'next' ); +isa_ok( $row2, 'A3C::SQL::row' ); +ok( $row2->nr, 'row has accessor' ); +is( $row2->nr, 5, 'nr' ); + +ok( $sql = A3C::SQL->new({ query => "select 'čevapćić' as test", dbh => $dbh, encoding => 'iso-8859-2' }), 'new + encoding' ); +cmp_ok( $sql->count, '==', 1, 'count' ); +ok( my $row3 = $sql->next, 'next' ); +is_deeply( $row3->test, "\x{10D}evap\x{107}i\x{107}", 'correct encoding' ); +