Commit | Line | Data |
0567538f |
1 | sub run_tests { |
2 | |
3 | plan tests => 3; |
4 | |
5 | # add some rows inside a transaction and commit it |
6 | # XXX: Is storage->dbh the only way to get a dbh? |
7 | DBICTest::Artist->storage->dbh->{AutoCommit} = 0; |
8 | for (10..15) { |
9 | DBICTest::Artist->create( { |
10 | artistid => $_, |
11 | name => "artist number $_", |
12 | } ); |
13 | } |
14 | DBICTest::Artist->dbi_commit; |
15 | my ($artist) = DBICTest::Artist->find(15); |
16 | is($artist->name, 'artist number 15', "Commit ok"); |
17 | |
18 | # repeat the test using AutoCommit = 1 to force the commit |
19 | DBICTest::Artist->storage->dbh->{AutoCommit} = 0; |
20 | for (16..20) { |
21 | DBICTest::Artist->create( { |
22 | artistid => $_, |
23 | name => "artist number $_", |
24 | } ); |
25 | } |
26 | DBICTest::Artist->storage->dbh->{AutoCommit} = 1; |
27 | ($artist) = DBICTest::Artist->find(20); |
28 | is($artist->name, 'artist number 20', "Commit using AutoCommit ok"); |
29 | |
30 | # add some rows inside a transaction and roll it back |
31 | DBICTest::Artist->storage->dbh->{AutoCommit} = 0; |
32 | for (21..30) { |
33 | DBICTest::Artist->create( { |
34 | artistid => $_, |
35 | name => "artist number $_", |
36 | } ); |
37 | } |
38 | DBICTest::Artist->dbi_rollback; |
39 | ($artist) = DBICTest::Artist->search( artistid => 25 ); |
40 | is($artist, undef, "Rollback ok"); |
41 | |
42 | } |
43 | |
44 | 1; |