/[webpac2]/trunk/t/4-store.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/4-store.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 949 - (hide annotations)
Thu Nov 1 00:16:48 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: application/x-troff
File size: 3111 byte(s)
 r1433@llin:  dpavlin | 2007-10-31 22:48:02 +0100
 HUGE swiping changes to implement new testing architecture
 based on all new WebPAC::Test module which makes
 test writing a joy

1 dpavlin 209 #!/usr/bin/perl -w
2    
3 dpavlin 949 use strict;
4 dpavlin 209 use blib;
5 dpavlin 949
6     use Test::More tests => 38;
7    
8 dpavlin 209 use File::Temp qw/tempdir/;
9    
10     BEGIN {
11 dpavlin 949 use_ok( 'WebPAC::Test' );
12 dpavlin 209 use_ok( 'WebPAC::Store' );
13     }
14    
15     my $db;
16    
17     diag "NULL Store";
18    
19 dpavlin 887 ok(new WebPAC::Store(), 'new without database');
20 dpavlin 209
21 dpavlin 949 ok($db = new WebPAC::Store({ database => 'foobar', %LOG }), "new");
22 dpavlin 218
23 dpavlin 713 throws_ok { $db->load_ds() } qr/id/, 'load_ds without id';
24 dpavlin 209 ok(! $db->load_ds( id => 000 ), 'load_ds');
25    
26 dpavlin 713 throws_ok { $db->save_ds() } qr/id/, "save_ds without id";
27     throws_ok { $db->save_ds( id => 000 ) } qr/ds/, 'save_ds without ds';
28 dpavlin 209
29     undef $db;
30    
31 dpavlin 949 ok($db = new WebPAC::Store({ database => 'webpac-test', %LOG }), "new");
32 dpavlin 209
33 dpavlin 735 #
34     # test *_ds
35     #
36    
37 dpavlin 217 throws_ok { $db->load_ds() } qr/without id/, 'load_ds without arguments';
38 dpavlin 209 ok(! $db->load_ds( id => 000 ), 'load_ds');
39    
40     throws_ok { $db->save_ds() } qr/id/, "save_ds - need id";
41    
42     my $ds = {
43     'Source' => {
44     'name' => 'Izvor: ',
45     'tag' => 'Source',
46     'display' => [ 'foo' ]
47     },
48     'ID' => {
49     'name' => 'ID',
50     'tag' => 'IDths',
51     'swish' => [ 'bar' ],
52     'lookup_key' => [ 'bar' ]
53     },
54     };
55    
56     throws_ok { $db->save_ds( id => 1 ) } qr/ds/, "save_ds - need ds";
57    
58     ok($db->save_ds( id => 1, ds => $ds ), "save_ds");
59    
60     ok(my $ds2 = $db->load_ds( id => 1 ), "load_ds with id");
61    
62     is_deeply($ds, $ds2, "loaded data");
63    
64 dpavlin 217 throws_ok { $ds2 = $db->load_ds( 1 ) } qr/HASH/, "load_ds without hash";
65 dpavlin 209
66 dpavlin 217 ok($ds2 = $db->load_ds( id => 1 ), "load_ds");
67    
68 dpavlin 209 is_deeply($ds, $ds2, "loaded data");
69    
70     ok(! $db->load_ds( id => 42 ), "load_ds non-existing");
71    
72 dpavlin 949 ok($db = new WebPAC::Store({ database => 'webpac-test', %LOG }), "new");
73 dpavlin 217
74 dpavlin 713 ok(! $db->load_ds( id => 1, input => 'foobar' ), "load_ds with invalid input");
75 dpavlin 217
76 dpavlin 713 ok(! $db->load_ds( id => 1, database => 'non-existant', ), "load_ds with unknown database");
77 dpavlin 217
78 dpavlin 713 ok($ds2 = $db->load_ds( id => 1, database => 'webpac-test' ), "load_ds");
79    
80 dpavlin 735 #
81     # test *_lookup
82     #
83    
84 dpavlin 713 my $l = {
85     foo => { 42 => 1 },
86     };
87    
88 dpavlin 715 ok(! $db->load_lookup( input => 'non-existant', key => 'foo' ), 'invalid load_lookup');
89    
90 dpavlin 713 ok($db->save_lookup( input => 'foo', key => 'bar', data => $l ), "save_lookup");
91    
92 dpavlin 887 ok(-e $db->var_path( 'lookup', 'webpac-test', 'foo', 'bar'), "exists");
93 dpavlin 713
94 dpavlin 715 is_deeply($db->load_lookup( input => 'foo', key => 'bar' ), $l, 'load_lookup');
95    
96 dpavlin 713 ok($db->save_lookup( database => 'baz', input => 'foo', key => 'bar', data => $l ), "save_lookup with database");
97    
98 dpavlin 887 ok(-e $db->var_path( '/lookup','baz','foo','bar'), "exists");
99 dpavlin 713
100 dpavlin 715 is_deeply($db->load_lookup( database => 'baz', input => 'foo', key => 'bar' ), $l, 'load_lookup');
101    
102 dpavlin 735 #
103     # test *_row
104     #
105    
106     my $row = {
107     '000' => [ 42 ],
108     '900' => [ qw/a foo b bar c baz/ ],
109     };
110    
111     ok(! $db->load_row( input => 'non-existant', id => 1234 ), 'invalid load_row');
112    
113     ok($db->save_row( input => 'foo', id => 1234, row => $row ), "save_row");
114    
115 dpavlin 887 ok(-e $db->var_path( 'row','webpac-test','foo',1234), "exists");
116 dpavlin 735
117     is_deeply($db->load_row( input => 'foo', id => 1234 ), $row, 'load_row');
118    
119     ok($db->save_row( database => 'baz', input => 'foo', id => 1234, row => $row ), "save_row with database");
120    
121 dpavlin 887 ok(-e $db->var_path( 'row','baz','foo',1234), "exists");
122 dpavlin 735
123     is_deeply($db->load_row( database => 'baz', input => 'foo', id => 1234 ), $row, 'load_row');
124    
125 dpavlin 209 undef $db;
126    

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26