1 |
#!/usr/bin/perl -w |
2 |
|
3 |
use strict; |
4 |
use lib 'lib'; |
5 |
|
6 |
use Test::More tests => 8; |
7 |
|
8 |
BEGIN { |
9 |
use_ok( 'WebPAC::Test' ); |
10 |
use_ok( 'WebPAC::Output' ); |
11 |
} |
12 |
|
13 |
my $ds = { |
14 |
'000' => { foo => [ 42 ], bar => 'bug!' }, |
15 |
'900' => { foo => [ |
16 |
{ a => '900a1', b => '900b1' }, |
17 |
{ a => '900a2', b => '900b2' }, |
18 |
{ a => '900a3', b => '900b3' }, |
19 |
] }, |
20 |
'902' => { foo => [ |
21 |
{ a => '900a1', b => '900b1' }, |
22 |
] }, |
23 |
|
24 |
'StRaNgE!Field' => { foo => 'value' }, |
25 |
|
26 |
'array' => { foo => [ 'a' .. 'c' ] }, |
27 |
}; |
28 |
|
29 |
my $hash; |
30 |
ok( $hash = WebPAC::Output->ds_to_hash( $ds, 'foo' ), 'ds_to_hash' ); |
31 |
diag dump($hash) if $debug; |
32 |
is_deeply( $hash, { |
33 |
"000" => [42], |
34 |
900 => [ |
35 |
{ a => "900a1", b => "900b1" }, |
36 |
{ a => "900a2", b => "900b2" }, |
37 |
{ a => "900a3", b => "900b3" }, |
38 |
], |
39 |
902 => [{ a => "900a1", b => "900b1" }], |
40 |
array => ["a", "b", "c"], |
41 |
strange_field => "value", |
42 |
}, 'is_deeply'); |
43 |
|
44 |
ok( $hash = WebPAC::Output->ds_to_hash( $ds, 'foo', disable_key_mungle => 1 ), 'ds_to_hash disable_key_mungle' ); |
45 |
diag dump($hash) if $debug; |
46 |
is_deeply( $hash, { |
47 |
"000" => [42], |
48 |
900 => [ |
49 |
{ a => "900a1", b => "900b1" }, |
50 |
{ a => "900a2", b => "900b2" }, |
51 |
{ a => "900a3", b => "900b3" }, |
52 |
], |
53 |
902 => [{ a => "900a1", b => "900b1" }], |
54 |
array => ["a", "b", "c"], |
55 |
'StRaNgE!Field' => "value", |
56 |
}, 'is_deeply'); |
57 |
|
58 |
ok( $hash = WebPAC::Output->ds_to_hash( $ds, 'foo', single_values => 1 ), 'ds_to_hash single_values' ); |
59 |
diag dump($hash) if $debug; |
60 |
is_deeply( $hash, { |
61 |
"000" => 42, |
62 |
900 => "{ a => \"900a1\", b => \"900b1\" } { a => \"900a2\", b => \"900b2\" } { a => \"900a3\", b => \"900b3\" }", |
63 |
902 => "{ a => \"900a1\", b => \"900b1\" }", |
64 |
array => "a b c", |
65 |
strange_field => "value", |
66 |
}, 'is_deeply'); |
67 |
|
68 |
|