diff options
Diffstat (limited to 't/25_chopblanks.t')
-rw-r--r-- | t/25_chopblanks.t | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/t/25_chopblanks.t b/t/25_chopblanks.t new file mode 100644 index 0000000..3469a6c --- /dev/null +++ b/t/25_chopblanks.t @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +# Check whether 'ChopBlanks' works. + +use strict; +BEGIN { + $| = 1; + $^W = 1; +} + +use t::lib::Test; +use Test::More tests => 14; +use Test::NoWarnings; + +# Create a database +my $dbh = connect_ok( RaiseError => 1 ); + +# Create the table +ok( $dbh->do(<<'END_SQL'), 'CREATE TABLE' ); +CREATE TABLE one ( + id INTEGER NOT NULL, + name CHAR (64) NOT NULL +) +END_SQL + +# Fill the table +ok( + $dbh->do('INSERT INTO one values ( 1, ? )', {}, 'NULL' ), + 'INSERT 1', +); +ok( + $dbh->do('INSERT INTO one values ( 2, ? )', {}, ' '), + 'INSERT 2', +); +ok( + $dbh->do('INSERT INTO one values ( 3, ? )', {}, ' a b c '), + 'INSERT 3', +); + +# Test fetching with ChopBlanks off +SCOPE: { + my $sth = $dbh->prepare('SELECT * FROM one ORDER BY id'); + isa_ok( $sth, 'DBI::st' ); + ok( $sth->execute, '->execute ok' ); + $sth->{ChopBlanks} = 0; + my $rows = $sth->fetchall_arrayref; + is_deeply( $rows, [ + [ 1, 'NULL' ], + [ 2, ' ' ], + [ 3, ' a b c ' ], + ], 'ChopBlanks = 0' ); + ok( $sth->finish, '->finish' ); +} + +# Test fetching with ChopBlanks on +SCOPE: { + my $sth = $dbh->prepare('SELECT * FROM one ORDER BY id'); + isa_ok( $sth, 'DBI::st' ); + ok( $sth->execute, '->execute ok' ); + $sth->{ChopBlanks} = 1; + my $rows = $sth->fetchall_arrayref; + is_deeply( $rows, [ + [ 1, 'NULL' ], + [ 2, '' ], + [ 3, ' a b c' ], + ], 'ChopBlanks = 1' ); + ok( $sth->finish, '->finish' ); +} |