aboutsummaryrefslogtreecommitdiff
path: root/t/tests/test2/morecompare.t
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2016-06-10 15:59:20 +0100
committerdakkar <dakkar@thenautilus.net>2016-06-10 15:59:20 +0100
commit7e0432d6af889d0343f129dec7060ae0c782d2bc (patch)
tree7995b9e4e795b3239282e80a6d28c9d0cbf76eca /t/tests/test2/morecompare.t
parentmore tests! (diff)
downloadSietima-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.t75
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;