From d2d13305c05652563f4b82c80bb53bbebb4bd0d4 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 2 Oct 2004 00:42:38 +0000 Subject: [PATCH] added PostgreSQL test git-svn-id: svn://svn.rot13.org/fuse_dbi/trunk@20 17f4e80c-d0e0-0310-8903-bfc3ae804c12 --- t/03pgsql.t | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 t/03pgsql.t diff --git a/t/03pgsql.t b/t/03pgsql.t new file mode 100755 index 0000000..fd987b6 --- /dev/null +++ b/t/03pgsql.t @@ -0,0 +1,84 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; + +use Test::More; +use blib; + +eval "use DBD::Pg"; +plan skip_all => "DBD::Pg required for testing" if $@; +plan tests => 12; + +use_ok('DBI'); +use_ok('Fuse::DBI'); + +my $test_db = 'test'; +my $dsn = "DBI:Pg:dbname=$test_db"; +my $mount = '/tmp/fuse_dbi_mnt'; + +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"); + +my $drop = eval { $dbh->do(qq{ drop table files }) }; +diag "drop table files" if ($drop); + +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 + name as id, + name as filename, + length(data) as size, + 1 as writable + from files +}; + +my $sql_read = qq{ + select data + from files + where name = ?; +}; + +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 => $dsn, + mount => $mount, +}); + +ok($mnt, "mount"); + +diag "press enter to continue"; +my $foo = ; + +ok($mnt->umount,"umount"); + -- 2.20.1