fdf55aebc6d041bf934b5116b868652ca9021649
[poe-component-irc-plugin-seen.git] / t / POE-Component-IRC-Plugin-Seen.t
1 use v5.14;
2 use strict;
3 use warnings;
4
5 use Test::More tests => 8;
6 use Test::MockObject;
7
8 BEGIN { *CORE::GLOBAL::localtime = sub { 'now' } }
9
10 BEGIN { use_ok('POE::Component::IRC::Plugin::Seen') };
11
12 # Variable setup
13 my $last_msg;
14
15 my $mockirc = Test::MockObject->new;
16 $mockirc->mock(yield => sub { $last_msg = $_[3] if $_[1] eq 'privmsg'})->set_always(nick_name => 'bot');
17
18 my $self = POE::Component::IRC::Plugin::Seen->new;
19 my $channels = [ '#chan' ];
20 my $rmgv = \'mgv!marius@ieval.ro';
21
22 # Sub setup
23 sub runtest{
24 my ($message, $expect, $comment) = @_;
25 undef $last_msg;
26 $self->S_public($mockirc, $rmgv, \$channels, \$message);
27 is($last_msg, $expect, $comment)
28 }
29
30 runtest 'something', undef, 'initialize';
31 runtest 'seen mgv', 'I last saw mgv now on #chan saying something', 'public';
32
33 $self->S_ctcp_action($mockirc, $rmgv, \$channels, \'sleeping');
34 runtest '!seen mgv', 'I last saw mgv now on #chan doing: * sleeping', 'ctcp_action';
35
36 $self->S_join($mockirc, $rmgv, \'#chan');
37 runtest 'bot: seen mgv', 'I last saw mgv now joining #chan', 'join';
38
39 $self->S_part($mockirc, $rmgv, \'#chan', \'');
40 runtest 'bot: !seen mgv', 'I last saw mgv now parting #chan', 'part without message';
41
42 $self->S_part($mockirc, $rmgv, \'#chan', \'buh-bye');
43 runtest 'bot: seen mgv', "I last saw mgv now parting #chan with message 'buh-bye'", 'part with message';
44
45 runtest 'bot: seen asd', "I haven't seen asd", "haven't seen";
This page took 0.022413 seconds and 3 git commands to generate.