Acrux-DBI

 view release on metacpan or  search on metacpan

t/05-dump.t  view on Meta::CPAN

//

-- #bar (...you can comment freely here...)
DROP TABLE `pets`;
DROP PROCEDURE `test`;

-- #baz
-- you can comment freely here
CREATE TABLE `stuff` (`whatever` INT);

-- # 1_00
DROP TABLE `stuff`;

-- # test
CREATE TABLE IF NOT EXISTS "test" ("message" TEXT DEFAULT NULL);
INSERT INTO "test" VALUES ("foo");
INSERT INTO "test" VALUES ("bar");

-- # tx
BEGIN TRANSACTION;
INSERT INTO "test" VALUES ("one");
INSERT INTO "test" VALUES ("two");
COMMIT;

EOL

#my $dump = Acrux::DBI::Dump->new(dbi => $dbi);
my $dump = $dbi->dump->from_string($string);
#note explain $dump->pool;

subtest 'Peek' => sub {
    my $main = $dump->peek;
    is(scalar @$main, 1, 'The "main" block contains 1 statement') or diag explain $main;
    my $bar = $dump->peek('bar');
    is(scalar @$bar, 2, 'The "bar" block contains 2 statements') or diag explain $bar;
    my $none = $dump->peek('none');
    is(scalar @$none, 0, 'The "none" block is empty or not exists') or diag explain $none;
    my @baz = $dump->peek('baz');
    is(scalar @baz, 1, 'The "baz" block contains 2 statements') or diag explain \@baz;
};

subtest 'Create table' => sub {
    $dump->poke('test');
    ok(!$dbi->error, 'Poked test dump') or diag $dbi->error;
} if $is_new;


subtest 'Transaction' => sub {
    $dump->poke('tx');
    ok(!$dbi->error, 'Poked tx dump') or diag $dbi->error;
};

#$dbi->disconnect; # Disabled this: see autoclean option

done_testing;

1;

__END__

DB_CONNECT_URL='sqlite://./test.db?sqlite_unicode=1' prove -lv t/05-dump.t



( run in 0.858 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )