# Test::MockDBI bad DBI method tests # $Id: bad_method.t 246 2008-12-04 13:01:22Z aff $ # ------ enable testing mock DBI BEGIN { push @ARGV, "--dbitest=2"; } # ------ use/require pragmas use strict; # better compile-time checking use warnings; # better run-time checking use Test::More tests => 34; # advanced testing use File::Spec::Functions; use lib catdir qw ( blib lib ); # use local module use Test::MockDBI; # what we are testing # ------ define variables my $dbh = ""; # mock DBI database handle my $md # Test::MockDBI instance = Test::MockDBI::get_instance(); # ------ make all methods bad is($md->bad_method("connect", 2, "CONNECT"), 1, q{Expect 1}); is($md->bad_method("disconnect", 2, "DISCONNECT"), 1, q{Expect 1}); is($md->bad_method("errstr", 2, ""), 1, q{Expect 1}); is($md->bad_method("prepare", 2, ""), 1, q{Expect 1}); is($md->bad_method("prepare_cached", 2, ""), 1, q{Expect 1}); is($md->bad_method("commit", 2, ""), 1, q{Expect 1}); is($md->bad_method("do", 2, ""), 1, q{Expect 1}); is($md->bad_method("rows", 2, ""), 1, q{Expect 1}); is($md->bad_method("bind_columns", 2, ""), 1, q{Expect 1}); is($md->bad_method("bind_param", 2, ""), 1, q{Expect 1}); is($md->bad_method("execute", 2, ""), 1, q{Expect 1}); is($md->bad_method("finish", 2, ""), 1, q{Expect 1}); is($md->bad_method("fetchall_arrayref", 2, ""), 1, q{Expect 1}); is($md->bad_method("fetchrow_arrayref", 2, ""), 1, q{Expect 1}); is($md->bad_method("fetchrow_array", 2, ""), 1, q{Expect 1}); is($md->bad_method("fetchrow", 2, ""), 1, q{Expect 1}); is($md->bad_method("fetch", 2, "^\$"), 1, q{Expect 1}); # ------ fake DBI object for testing $dbh = bless {}, "DBI"; # ----- NOTE: connect() and disconnect() must be before prepare*() # ----- as they set the current SQL # ------ DBI connect() is(DBI->connect(), undef, "DBI connect()"); # ------ DBI disconnect() is($dbh->disconnect(), undef, "DBI disconnect()"); # ------ DBI prepare() is($dbh->prepare(), undef, "DBI prepare()"); # ------ DBI finish() is($dbh->finish(), undef, "DBI finish()"); # ------ DBI prepare_cached() is($dbh->prepare_cached(), undef, "DBI prepare_cached()"); # ------ DBI commit() is($dbh->commit(), undef, "DBI commit()"); # ------ DBI bind_columns() is($dbh->bind_columns(), undef, "DBI bind_columns()"); # ------ DBI bind_param() is($dbh->bind_param(), undef, "DBI bind_param()"); # ------ DBI execute() is($dbh->execute(), undef, "DBI execute()"); # ------ DBI fetchall_arrayref() is($dbh->fetchall_arrayref(), undef, "DBI fetchall_arrayref()"); # ------ DBI fetchrow_arrayref() is($dbh->fetchrow_arrayref(), undef, "DBI fetchrow_arrayref()"); # ------ DBI fetchrow_array() is($dbh->fetchrow_array(), undef, "DBI fetchrow_array()"); # ------ DBI fetchrow() is($dbh->fetchrow(), undef, "DBI fetchrow()"); # ------ DBI fetch() # ------ also SQL match with explicit pattern but no SQL is($dbh->fetch(), undef, "DBI fetch() + pattern without SQL"); # ------ DBI do() is($dbh->do(), undef, "DBI do()"); # ------ DBI rows() is($dbh->rows(), undef, "DBI rows()"); # ------ SQL without pattern is(ref($dbh->prepare("SELECT *")), ref($dbh), "SQL without pattern"); __END__