#!/usr/bin/perl
BEGIN {
eval
"use DBD::SQLite"
;
plan $@
? (
skip_all
=>
'needs DBD::SQLite for testing'
)
: (
tests
=> 12 );
}
use_ok(
'DBICTest'
);
DBICTest->init_schema();
my
$cbworks
= 0;
DBICTest->schema->storage->debugcb(
sub
{
$cbworks
= 1; });
DBICTest->schema->storage->debug(0);
my
$rs
= DBICTest::CD->search({});
$rs
->count();
ok(!
$cbworks
,
'Callback not called with debug disabled'
);
DBICTest->schema->storage->debug(1);
$rs
->count();
ok(
$cbworks
,
'Debug callback worked.'
);
my
$prof
= new DBIx::Test::Profiler();
DBICTest->schema->storage->debugobj(
$prof
);
$rs
->count();
ok(
$prof
->{
'query_start'
},
'query_start called'
);
ok(
$prof
->{
'query_end'
},
'query_end called'
);
ok(!
$prof
->{
'txn_begin'
},
'txn_begin not called'
);
ok(!
$prof
->{
'txn_commit'
},
'txn_commit not called'
);
$prof
->
reset
();
DBICTest->schema->txn_begin();
ok(
$prof
->{
'txn_begin'
},
'txn_begin called'
);
$rs
= DBICTest::CD->search({});
$rs
->count();
ok(
$prof
->{
'query_start'
},
'query_start called'
);
ok(
$prof
->{
'query_end'
},
'query_end called'
);
DBICTest->schema->txn_commit();
ok(
$prof
->{
'txn_commit'
},
'txn_commit called'
);
$prof
->
reset
();
DBICTest->schema->txn_begin();
$rs
= DBICTest::CD->search({});
$rs
->count();
DBICTest->schema->txn_rollback();
ok(
$prof
->{
'txn_rollback'
},
'txn_rollback called'
);
DBICTest->schema->storage->debug(0);
sub
new {
my
$self
=
bless
({});
}
sub
query_start {
my
$self
=
shift
();
$self
->{
'query_start'
} = 1;
}
sub
query_end {
my
$self
=
shift
();
$self
->{
'query_end'
} = 1;
}
sub
txn_begin {
my
$self
=
shift
();
$self
->{
'txn_begin'
} = 1;
}
sub
txn_rollback {
my
$self
=
shift
();
$self
->{
'txn_rollback'
} = 1;
}
sub
txn_commit {
my
$self
=
shift
();
$self
->{
'txn_commit'
} = 1;
}
sub
reset
{
my
$self
=
shift
();
$self
->{
'query_start'
} = 0;
$self
->{
'query_end'
} = 0;
$self
->{
'txn_begin'
} = 0;
$self
->{
'txn_rollback'
} = 0;
$self
->{
'txn_end'
} = 0;
}
1;