From 14eb6b2ad247c500aee47d9b2f18ef6185045ab7 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 5 Sep 2004 16:04:35 +0000 Subject: [PATCH] use DBD::SQLite to run tests (if installed) git-svn-id: svn://svn.rot13.org/fuse_dbi/trunk@15 17f4e80c-d0e0-0310-8903-bfc3ae804c12 --- t/02database.t | 73 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 17 deletions(-) diff --git a/t/02database.t b/t/02database.t index d0745b0..cd77dac 100755 --- a/t/02database.t +++ b/t/02database.t @@ -3,38 +3,75 @@ use strict; use warnings; -use Test::More tests => 3; +use Test::More; use blib; +eval "use DBD::SQLite"; +plan skip_all => "DBD::SQLite required for testing" if $@; +plan tests => 14; + +use_ok('DBI'); use_ok('Fuse::DBI'); -my $sql_filenames = q{ +my $test_db = 'fusedbi.db'; +my $dsn = "DBI:SQLite:dbname=$test_db"; +my $mount = '/tmp/fuse_dbi_mnt'; + +ok((! -e $test_db || unlink $test_db), "test db: $test_db"); + +ok((! -e $mount || rmdir $mount), "mount point $mount"); + +mkdir $mount || die "mkdir $mount: $!"; +ok(-d $mount, "mkdir $mount"); + +ok(my $dbh = DBI->connect($dsn, , '', '', { RaiseError => 1 }), + "connect fusedbi test database"); + +ok($dbh->do(qq{ + create table files ( + name text primary key, + data text + ) +}), "create table files"); + +ok(my $sth = $dbh->prepare(qq{ + insert into files (name,data) values (?,?) +}), "prepare"); + +foreach my $file (qw(file dir/file dir/subdir/file)) { + my $data = "this is test data\n" x length($file); + ok($sth->execute($file,$data), "insert $file"); +} + +my $sql_filenames = qq{ select - oid as id, - namespace||'/'||name||' ['||oid||']' as filename, - length(template) as size, - iseditable as writable - from template ; + name as id, + name as filename, + length(data) as size, + 0 as writable + from files }; -my $sql_read = q{ - select template - from template - where oid = ?; +my $sql_read = qq{ + select data + from files + where name = ?; }; -my $sql_update = q{ - update template - set template = ? - where oid = ?; +my $sql_update = qq{ + update files + set data = ? + where name = ?; }; +system "fusermount -q -u $mount" || diag "nothing mounted at $mount, ok"; + my $mnt = Fuse::DBI->mount({ filenames => $sql_filenames, read => $sql_read, update => $sql_update, - dsn => 'DBI:Pg:dbname=webgui', - mount => '/mnt2', + dsn => $dsn, + mount => $mount, }); ok($mnt, "mount"); @@ -44,3 +81,5 @@ my $foo = ; ok($mnt->umount,"umount"); +ok(unlink $test_db,"rm $test_db"); + -- 2.20.1