diff options
Diffstat (limited to 't/tests/test2/compare-bag.t')
-rw-r--r-- | t/tests/test2/compare-bag.t | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/t/tests/test2/compare-bag.t b/t/tests/test2/compare-bag.t deleted file mode 100644 index 80a7bc3..0000000 --- a/t/tests/test2/compare-bag.t +++ /dev/null @@ -1,147 +0,0 @@ -#!perl -use strict; -use warnings; -use 5.020; -use lib 't/lib'; -use Test2::Bundle::Extended -target => 'Test2::Compare::Bag'; - -isa_ok($CLASS, 'Test2::Compare::Base'); -is($CLASS->name, '<BAG>', "got name"); - -subtest construction => sub { - my $one = $CLASS->new(); - isa_ok($one, $CLASS); - is($one->items, [], "created items as an array"); -}; - -subtest verify => sub { - my $one = $CLASS->new; - - is($one->verify(exists => 0), 0, "did not get anything"); - is($one->verify(exists => 1, got => undef), 0, "undef is not an array"); - is($one->verify(exists => 1, got => 0), 0, "0 is not an array"); - is($one->verify(exists => 1, got => 1), 0, "1 is not an array"); - is($one->verify(exists => 1, got => 'string'), 0, "'string' is not an array"); - is($one->verify(exists => 1, got => {}), 0, "a hash is not an array"); - is($one->verify(exists => 1, got => []), 1, "an array is an array"); -}; - -subtest add_item => sub { - my $one = $CLASS->new(); - - $one->add_item('a'); - $one->add_item(1 => 'b'); - $one->add_item(3 => 'd'); - - ok( - lives { $one->add_item(2 => 'c') }, - "Indexes are ignored", - ); - - $one->add_item(8 => 'x'); - $one->add_item('y'); - - is( - $one->items, - [ 'a', 'b', 'd', 'c', 'x', 'y' ], - "Expected items", - ); -}; - -subtest deltas => sub { - my $conv = Test2::Compare->can('strict_convert'); - - my %params = (exists => 1, convert => $conv, seen => {}); - - my $items = ['a', 'b']; - my $one = $CLASS->new(items => $items); - - like( - [$one->deltas(%params, got => ['a', 'b'])], - [], - "No delta, no diff" - ); - - like( - [$one->deltas(%params, got => ['b', 'a'])], - [], - "No delta, no diff, order is ignored" - ); - - like( - [$one->deltas(%params, got => ['a'])], - [ - { - dne => 'got', - id => [ARRAY => '*'], - got => undef,, - chk => {input => 'b'}, - children => [ - { - dne => DNE, - id => [ARRAY => 0], - got => 'a', - chk => {input => 'b'}, - }, - ], - } - ], - "Got the delta for the missing value" - ); - - like( - [$one->deltas(%params, got => ['a', 'a'])], - [ - { - dne => 'got', - id => [ARRAY => '*'], - got => undef, - chk => {input => 'b'}, - children => [ - { - dne => DNE, - id => [ARRAY => 0], - got => 'a', - chk => {input => 'b'}, - }, - { - dne => DNE, - id => [ARRAY => 1], - got => 'a', - chk => {input => 'b'}, - }, - ], - } - ], - "Got the delta for the incorrect value" - ); - - like( - [$one->deltas(%params, got => ['a', 'b', 'a', 'a'])], - [], - "No delta, not checking ending" - ); - - $one->set_ending(1); - like( - [$one->deltas(%params, got => ['a', 'b', 'a', 'x'])], - array { - item 0 => { - dne => 'check', - id => [ARRAY => 2], - got => 'a', - check => DNE, - }; - item 1 => { - dne => 'check', - id => [ARRAY => 3], - got => 'x', - check => DNE, - }; - end(), - }, - "Got 2 deltas for extra items" - ); -}; - -done_testing; |