remove done TODO entry (infer quote_char)
[dbsrgits/DBIx-Class.git] / t / 752sqlite.t
CommitLineData
86a51471 1use strict;
2use warnings;
3
4use Test::More;
5use Test::Exception;
6use lib qw(t/lib);
7use DBICTest;
8
9my $schema = DBICTest->init_schema(auto_savepoint => 1);
10
11my $ars = $schema->resultset('Artist');
12
13# test two-phase commit and inner transaction rollback from nested transactions
14$schema->txn_do(sub {
15 $ars->create({ name => 'in_outer_transaction' });
16 $schema->txn_do(sub {
17 $ars->create({ name => 'in_inner_transaction' });
18 });
19 ok($ars->search({ name => 'in_inner_transaction' })->first,
20 'commit from inner transaction visible in outer transaction');
21 throws_ok {
22 $schema->txn_do(sub {
23 $ars->create({ name => 'in_inner_transaction_rolling_back' });
24 die 'rolling back inner transaction';
25 });
26 } qr/rolling back inner transaction/, 'inner transaction rollback executed';
27 $ars->create({ name => 'in_outer_transaction2' });
28});
29ok($ars->search({ name => 'in_outer_transaction' })->first,
30 'commit from outer transaction');
31ok($ars->search({ name => 'in_outer_transaction2' })->first,
32 'second commit from outer transaction');
33ok($ars->search({ name => 'in_inner_transaction' })->first,
34 'commit from inner transaction');
35is $ars->search({ name => 'in_inner_transaction_rolling_back' })->first,
36 undef,
37 'rollback from inner transaction';
38
39done_testing;
40
41# vim:sts=2 sw=2: