X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Frequest%2Fflatten.t;h=60b2d3374c73860cc1ac632619f742ca68e70156;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=0cfd65f280a9d326b9211a0d21aec05c406de123;hpb=9414d575c80bf2e7278e1bac7d0975809e79abe3;p=kivitendo-erp.git diff --git a/t/request/flatten.t b/t/request/flatten.t index 0cfd65f28..60b2d3374 100644 --- a/t/request/flatten.t +++ b/t/request/flatten.t @@ -1,5 +1,5 @@ use Test::More; -use Test::Deep; +use Test::Deep qw(cmp_deeply); use Data::Dumper; use_ok 'SL::Request', qw(flatten unflatten); @@ -13,8 +13,8 @@ sub f ($$$) { my $unflat = unflatten($flat); print Dumper($unflat) if DEBUG; - cmp_deeply($flat, $_[1], $_[2]); - cmp_deeply($unflat, $_[0], $_[2]); + cmp_deeply($flat, $_[1], $_[2] . " flatten"); + cmp_deeply($unflat, $_[0], $_[2] . " unflatten"); } f { @@ -45,6 +45,15 @@ f { a => [ { c => 1, d => 2 }, { c => 3, d => 4 }, ] }, [ 'a[].d', 4 ], ], 'array of hashes'; +f { a => [ { a => 1, b => 2 }, { a => 3, c => 4 }, ] }, +[ + [ 'a[+].a', 1 ], + [ 'a[].b', 2 ], + [ 'a[+].a', 3 ], + [ 'a[].c', 4 ], +], 'array of hashes with not existing keys'; + + # tests from Hash::Flatten below f { 'x' => 1, @@ -55,12 +64,12 @@ f { 'q' => 4 }, } -}, bag( +}, [ [ 'x' => 1, ], [ 'y.a' => 2, ], [ 'y.b.p' => 3, ], [ 'y.b.q' => 4 ], -), 'Hash::Flatten 1'; +], 'Hash::Flatten 1'; f { @@ -70,13 +79,13 @@ f { }, 'a' => [1,2,3], }, -bag ( - ['x' => 1, ], +[ ['0.1' => 2, ], ['a[]' => 1, ], ['a[]' => 2, ], ['a[]' => 3, ], -), 'Hash::Flatten 2 - weird keys and values'; + ['x' => 1, ], +], 'Hash::Flatten 2 - weird keys and values'; f { @@ -95,15 +104,15 @@ f { }, ] }, -bag( +[ + [ 'ay.a' => 2, ], [ 'ay.b.p' => 3, ], [ 'ay.b.q' => 4, ], - [ 'ay.a' => 2, ], [ 'x' => 1, ], [ 'y[]' => 'a', ], [ 'y[]' => 2 ], [ 'y[+].baz' => 'bum', ], -), 'Hash::Flatten 3 - mixed'; +], 'Hash::Flatten 3 - mixed'; f { 'x' => 1, @@ -117,17 +126,17 @@ f { 'money', ] }, -bag( +[ [ 'x' => 1, ], - [ 'y[][]' => 'his', ], - [ 'y[][+][]' => 'parted', ], - [ 'y[][][]' => 'from', ], [ 'y[+][]' => 'a', ], - [ 'y[+][]' => 'easily', ], [ 'y[][]' => 'fool', ], [ 'y[][]' => 'is' ], + [ 'y[+][]' => 'easily', ], + [ 'y[][+][]' => 'parted', ], + [ 'y[][][]' => 'from', ], + [ 'y[][]' => 'his', ], [ 'y[]' => 'money', ], -), 'Hash::Flatten 4 - array nesting'; +], 'Hash::Flatten 4 - array nesting'; f { 'x' => 1, @@ -145,15 +154,15 @@ f { }, ] }, -bag( - [ 'x' => 1, ], - [ 's' => 'hey', ], +[ [ 'ay.a' => 2, ], - [ 'y[+].baz' => 'bum', ], [ 'ay.b.p' => 3, ], - [ 'y[]' => 'a', ], [ 'ay.b.q' => 4, ], + [ 's' => 'hey', ], + [ 'x' => 1, ], + [ 'y[]' => 'a', ], [ 'y[]' => 2 ], -), 'Hash::Flatten 5 - deep mix'; + [ 'y[+].baz' => 'bum', ], +], 'Hash::Flatten 5 - deep mix'; done_testing();