From: Andy Grundman Date: Fri, 29 Jul 2005 21:25:43 +0000 (+0000) Subject: Added tests for commit and rollback X-Git-Tag: v0.03001~119 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8adac9d4a14743cd7cd4b4b16c495b06441d4d18;p=dbsrgits%2FDBIx-Class.git Added tests for commit and rollback --- diff --git a/t/04db.t b/t/04db.t new file mode 100644 index 0000000..2d97f94 --- /dev/null +++ b/t/04db.t @@ -0,0 +1,45 @@ +use Test::More; + +plan tests => 4; + +use lib qw(t/lib); + +use_ok('DBICTest'); + +# add some rows inside a transaction and commit it +# XXX: Is _get_dbh the only way to get a dbh? +DBICTest::Artist->_get_dbh->{AutoCommit} = 0; +for (10..15) { + DBICTest::Artist->create( { + artistid => $_, + name => "artist number $_", + } ); +} +DBICTest::Artist->dbi_commit; +my ($artist) = DBICTest::Artist->retrieve(15); +is($artist->name, 'artist number 15', "Commit ok"); + +# repeat the test using AutoCommit = 1 to force the commit +DBICTest::Artist->_get_dbh->{AutoCommit} = 0; +for (16..20) { + DBICTest::Artist->create( { + artistid => $_, + name => "artist number $_", + } ); +} +DBICTest::Artist->_get_dbh->{AutoCommit} = 1; +($artist) = DBICTest::Artist->retrieve(20); +is($artist->name, 'artist number 20', "Commit using AutoCommit ok"); + +# add some rows inside a transaction and roll it back +DBICTest::Artist->_get_dbh->{AutoCommit} = 0; +for (21..30) { + DBICTest::Artist->create( { + artistid => $_, + name => "artist number $_", + } ); +} +DBICTest::Artist->dbi_rollback; +($artist) = DBICTest::Artist->search( artistid => 25 ); +is($artist, undef, "Rollback ok"); +