/[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

Contents of /trunk/t/4-store.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 949 - (show 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 #!/usr/bin/perl -w
2
3 use strict;
4 use blib;
5
6 use Test::More tests => 38;
7
8 use File::Temp qw/tempdir/;
9
10 BEGIN {
11 use_ok( 'WebPAC::Test' );
12 use_ok( 'WebPAC::Store' );
13 }
14
15 my $db;
16
17 diag "NULL Store";
18
19 ok(new WebPAC::Store(), 'new without database');
20
21 ok($db = new WebPAC::Store({ database => 'foobar', %LOG }), "new");
22
23 throws_ok { $db->load_ds() } qr/id/, 'load_ds without id';
24 ok(! $db->load_ds( id => 000 ), 'load_ds');
25
26 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
29 undef $db;
30
31 ok($db = new WebPAC::Store({ database => 'webpac-test', %LOG }), "new");
32
33 #
34 # test *_ds
35 #
36
37 throws_ok { $db->load_ds() } qr/without id/, 'load_ds without arguments';
38 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 throws_ok { $ds2 = $db->load_ds( 1 ) } qr/HASH/, "load_ds without hash";
65
66 ok($ds2 = $db->load_ds( id => 1 ), "load_ds");
67
68 is_deeply($ds, $ds2, "loaded data");
69
70 ok(! $db->load_ds( id => 42 ), "load_ds non-existing");
71
72 ok($db = new WebPAC::Store({ database => 'webpac-test', %LOG }), "new");
73
74 ok(! $db->load_ds( id => 1, input => 'foobar' ), "load_ds with invalid input");
75
76 ok(! $db->load_ds( id => 1, database => 'non-existant', ), "load_ds with unknown database");
77
78 ok($ds2 = $db->load_ds( id => 1, database => 'webpac-test' ), "load_ds");
79
80 #
81 # test *_lookup
82 #
83
84 my $l = {
85 foo => { 42 => 1 },
86 };
87
88 ok(! $db->load_lookup( input => 'non-existant', key => 'foo' ), 'invalid load_lookup');
89
90 ok($db->save_lookup( input => 'foo', key => 'bar', data => $l ), "save_lookup");
91
92 ok(-e $db->var_path( 'lookup', 'webpac-test', 'foo', 'bar'), "exists");
93
94 is_deeply($db->load_lookup( input => 'foo', key => 'bar' ), $l, 'load_lookup');
95
96 ok($db->save_lookup( database => 'baz', input => 'foo', key => 'bar', data => $l ), "save_lookup with database");
97
98 ok(-e $db->var_path( '/lookup','baz','foo','bar'), "exists");
99
100 is_deeply($db->load_lookup( database => 'baz', input => 'foo', key => 'bar' ), $l, 'load_lookup');
101
102 #
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 ok(-e $db->var_path( 'row','webpac-test','foo',1234), "exists");
116
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 ok(-e $db->var_path( 'row','baz','foo',1234), "exists");
122
123 is_deeply($db->load_row( database => 'baz', input => 'foo', id => 1234 ), $row, 'load_row');
124
125 undef $db;
126

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26