]>
Commit | Line | Data |
---|---|---|
566f7a16 MG |
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 'bot: seen mgv', 'I last saw mgv now on #chan saying something', 'public'; | |
32 | ||
33 | $self->S_ctcp_action($mockirc, $rmgv, \$channels, \'sleeping'); | |
34 | runtest 'bot: 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"; |