/[fuse_dbi]/trunk/t/03pgsql.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/t/03pgsql.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20 - (hide annotations)
Sat Oct 2 00:42:38 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/x-troff
File size: 1551 byte(s)
added PostgreSQL test

1 dpavlin 20 #!/usr/bin/perl -w
2    
3     use strict;
4     use warnings;
5    
6     use Test::More;
7     use blib;
8    
9     eval "use DBD::Pg";
10     plan skip_all => "DBD::Pg required for testing" if $@;
11     plan tests => 12;
12    
13     use_ok('DBI');
14     use_ok('Fuse::DBI');
15    
16     my $test_db = 'test';
17     my $dsn = "DBI:Pg:dbname=$test_db";
18     my $mount = '/tmp/fuse_dbi_mnt';
19    
20     ok((! -e $mount || rmdir $mount), "mount point $mount");
21    
22     mkdir $mount || die "mkdir $mount: $!";
23     ok(-d $mount, "mkdir $mount");
24    
25     ok(my $dbh = DBI->connect($dsn, , '', '', { RaiseError => 1 }),
26     "connect fusedbi test database");
27    
28     my $drop = eval { $dbh->do(qq{ drop table files }) };
29     diag "drop table files" if ($drop);
30    
31     ok($dbh->do(qq{
32     create table files (
33     name text primary key,
34     data text
35     )
36     }), "create table files");
37    
38     ok(my $sth = $dbh->prepare(qq{
39     insert into files (name,data) values (?,?)
40     }), "prepare");
41    
42     foreach my $file (qw(file dir/file dir/subdir/file)) {
43     my $data = "this is test data\n" x length($file);
44     ok($sth->execute($file,$data), "insert $file");
45     }
46    
47     my $sql_filenames = qq{
48     select
49     name as id,
50     name as filename,
51     length(data) as size,
52     1 as writable
53     from files
54     };
55    
56     my $sql_read = qq{
57     select data
58     from files
59     where name = ?;
60     };
61    
62     my $sql_update = qq{
63     update files
64     set data = ?
65     where name = ?;
66     };
67    
68     system "fusermount -q -u $mount" || diag "nothing mounted at $mount, ok";
69    
70     my $mnt = Fuse::DBI->mount({
71     filenames => $sql_filenames,
72     read => $sql_read,
73     update => $sql_update,
74     dsn => $dsn,
75     mount => $mount,
76     });
77    
78     ok($mnt, "mount");
79    
80     diag "press enter to continue";
81     my $foo = <STDIN>;
82    
83     ok($mnt->umount,"umount");
84    

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26