diff options
author | dakkar <dakkar@thenautilus.net> | 2016-06-10 15:59:20 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2016-06-10 15:59:20 +0100 |
commit | 7e0432d6af889d0343f129dec7060ae0c782d2bc (patch) | |
tree | 7995b9e4e795b3239282e80a6d28c9d0cbf76eca /t/tests/test2/morecompare.t | |
parent | more tests! (diff) | |
download | Sietima-7e0432d6af889d0343f129dec7060ae0c782d2bc.tar.gz Sietima-7e0432d6af889d0343f129dec7060ae0c782d2bc.tar.bz2 Sietima-7e0432d6af889d0343f129dec7060ae0c782d2bc.zip |
move Test2::* tests to subdir
Diffstat (limited to 't/tests/test2/morecompare.t')
-rw-r--r-- | t/tests/test2/morecompare.t | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/t/tests/test2/morecompare.t b/t/tests/test2/morecompare.t new file mode 100644 index 0000000..ea85a18 --- /dev/null +++ b/t/tests/test2/morecompare.t @@ -0,0 +1,75 @@ +#!perl +use strict; +use warnings; +use 5.020; +use Test2::Bundle::Extended; +use lib 't/lib'; +use Test2::Tools::MoreCompare qw(bag call_list); +use Test2::API qw(intercept); + +subtest simple => sub { + imported_ok qw{bag call_list}; +}; + +subtest bag => sub { + my $empty = bag { }; + + my $simple = bag { + item 'a'; + item 'b'; + item 'c'; + }; + + my $closed = array { + item 0 => 'a'; + item 1 => 'b'; + item 2 => 'c'; + end; + }; + + is([], $empty, "empty array"); + is(['a'], $empty, "any array matches empty"); + + is([qw/a b c/], $simple, "simple exact match"); + is([qw/b c a/], $simple, "simple out of order"); + is([qw/a b c d e/], $simple, "simple with extra"); + is([qw/b a d e c/], $simple, "simple with extra, out of order"); + + is([qw/a b c/], $closed, "closed array"); + + my $events = intercept { + is({}, $empty); + is(undef, $empty); + is(1, $empty); + is('ARRAY', $empty); + + is([qw/x y z/], $simple); + is([qw/a b x/], $simple); + is([qw/x b c/], $simple); + + is([qw/a b c d/], $closed); + }; + + @$events = grep {$_->isa('Test2::Event::Ok')} @$events; + is(@$events, 8, "8 events"); + is($_->pass, 0, "event failed") for @$events; +}; + +subtest call_list => sub { + my $obj = mock 'My::Class' => ( + add => [ + many => sub { return (1,2,3) }, + one => sub { 4 }, + ], + ); + + my $calls = object { + call one => 4; + call_list many => [1,2,3]; + call_list one => [4]; + }; + + is(bless({},'My::Class'), $calls, 'call_list matches'); +}; + +done_testing; |