X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Frun%2F04db.tl;fp=t%2Frun%2F04db.tl;h=d46c65631ec3969b9d8bb0dfba14c2d1dacb05f4;hb=0567538f9dcf59ff0dcf0fe766815b242115ce20;hp=0000000000000000000000000000000000000000;hpb=22b15c96c84ddc1aeddddac637ca4c59a6465dcf;p=dbsrgits%2FDBIx-Class.git diff --git a/t/run/04db.tl b/t/run/04db.tl new file mode 100644 index 0000000..d46c656 --- /dev/null +++ b/t/run/04db.tl @@ -0,0 +1,44 @@ +sub run_tests { + +plan tests => 3; + +# add some rows inside a transaction and commit it +# XXX: Is storage->dbh the only way to get a dbh? +DBICTest::Artist->storage->dbh->{AutoCommit} = 0; +for (10..15) { + DBICTest::Artist->create( { + artistid => $_, + name => "artist number $_", + } ); +} +DBICTest::Artist->dbi_commit; +my ($artist) = DBICTest::Artist->find(15); +is($artist->name, 'artist number 15', "Commit ok"); + +# repeat the test using AutoCommit = 1 to force the commit +DBICTest::Artist->storage->dbh->{AutoCommit} = 0; +for (16..20) { + DBICTest::Artist->create( { + artistid => $_, + name => "artist number $_", + } ); +} +DBICTest::Artist->storage->dbh->{AutoCommit} = 1; +($artist) = DBICTest::Artist->find(20); +is($artist->name, 'artist number 20', "Commit using AutoCommit ok"); + +# add some rows inside a transaction and roll it back +DBICTest::Artist->storage->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"); + +} + +1;