use strict; use warnings; use Test::More; use DBI; use vars qw($test_dsn $test_user $test_password); use lib 't', '.'; require "lib.pl"; my $dbh = DbiTestConnect($test_dsn, $test_user, $test_password, { PrintError => 0, RaiseError => 1 }); plan tests => 31; ok eval { $dbh->do('SELECT 1', {}) }, 'empty set of attributes is accepted for ->do method'; ok !eval { $dbh->do('SELECT 1', { mariadb_unknown => 1 }) }, 'attribute "mariadb_unknown" is not accepted for ->do method'; is $dbh->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" is not accepted for ->do method'; ok !eval { $dbh->do('SELECT 1', { unknown => 1 }) }, 'attribute "unknown" is not accepted for ->do method'; is $dbh->errstr, 'Unknown attribute unknown', 'attribute "unknown" is not accepted for ->do method'; ok eval { $dbh->prepare('SELECT 1', {}) }, 'empty set of attributes is accepted for ->prepare method'; ok !eval { $dbh->prepare('SELECT 1', { mariadb_unknown => 1 }) }, 'attribute "mariadb_unknown" is not accepted for ->prepare method'; is $dbh->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" is not accepted for ->prepare method'; ok !eval { $dbh->prepare('SELECT 1', { unknown => 1 }) }, 'attribute "unknown" is not accepted for ->prepare method'; is $dbh->errstr, 'Unknown attribute unknown', 'attribute "unknown" is not accepted for ->prepare method'; ok eval { $dbh->selectall_arrayref('SELECT 1', {}) }, 'empty set of attributes is accepted for ->selectall_arrayref method'; ok !eval { $dbh->selectall_arrayref('SELECT 1', { mariadb_unknown => 1 }) }, 'attribute "mariadb_unknown" is not accepted for ->selectall_arrayref method'; is $dbh->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" is not accepted for ->selectall_arrayref method'; ok !eval { $dbh->selectall_arrayref('SELECT 1', { unknown => 1 }) }, 'attribute "unknown" is not accepted for ->selectall_arrayref method'; is $dbh->errstr, 'Unknown attribute unknown', 'attribute "unknown" is not accepted for ->selectall_arrayref method'; ok !eval { my $tmp = $dbh->{mariadb_unknown} }, 'attribute "mariadb_unknown" cannot be retrieved from database handle'; is $dbh->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" cannot be retrieved from database handle'; ok !eval { my $tmp = $dbh->{unknown} }, 'attribute "unknown" cannot be retrieved from database handle'; is $dbh->errstr, 'Unknown attribute unknown', 'attribute "unknown" cannot be retrieved from database handle'; ok !eval { $dbh->{mariadb_unknown} = 1 }, 'attribute "mariadb_unknown" cannot be set on database handle'; is $dbh->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" cannot be set on database handle'; ok !eval { $dbh->{unknown} = 1 }, 'attribute "unknown" cannot be set on database handle'; is $dbh->errstr, 'Unknown attribute unknown', 'attribute "mariadb_unknown" cannot be set on database handle'; my $sth = $dbh->prepare('SELECT 1'); ok !eval { my $tmp = $sth->{mariadb_unknown} }, 'attribute "mariadb_unknown" cannot be retrieved from statement handle'; is $sth->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" cannot be retrieved from statement handle'; ok !eval { my $tmp = $sth->{unknown} }, 'attribute "unknown" cannot be retrieved from statement handle'; is $sth->errstr, 'Unknown attribute unknown', 'attribute "unknown" cannot be retrieved from statement handle'; ok !eval { $sth->{mariadb_unknown} = 1 }, 'attribute "mariadb_unknown" cannot be set on statement handle'; is $sth->errstr, 'Unknown attribute mariadb_unknown', 'attribute "mariadb_unknown" cannot be set on statement handle'; ok !eval { $sth->{unknown} = 1 }, 'attribute "unknown" cannot be set on statement handle'; is $sth->errstr, 'Unknown attribute unknown', 'attribute "unknown" cannot be set on statement handle'; $dbh->disconnect();