| File: | t/bot-irc-api.t |
| Coverage: | 97.2% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | 1 1 1 | 133593 12 63 | use strict; | ||||
| 2 | 1 1 1 | 13 9 63 | use warnings; | ||||
| 3 | |||||||
| 4 | 1 1 1 | 1347 23724 11 | use Test::Lib; | ||||
| 5 | 1 1 1 | 15323 2176049 13 | use Test::Most; | ||||
| 6 | |||||||
| 7 | 1 1 1 | 1066068 49 19964 | use constant MODULE => 'Bot::IRC'; | ||||
| 8 | |||||||
| 9 | 1 1 1 1 1 | 196 34701 21 7 67 | BEGIN { use_ok(MODULE); } | ||||
| 10 | 1 | 481985 | require_ok(MODULE); | ||||
| 11 | |||||||
| 12 | 1 1 | 589 43 | throws_ok( sub { MODULE->new }, qr|connect/server not provided|, MODULE . '->new dies' ); | ||||
| 13 | 1 | 29 | lives_ok( sub { MODULE->new( | ||||
| 14 | connect => { server => 'irc.perl.org' } | ||||||
| 15 | 1 | 634 | ) }, MODULE . '->new( connect => { server => $server } )' ); | ||||
| 16 | |||||||
| 17 | 1 | 253 | my $settings = { | ||||
| 18 | spawn => 3, | ||||||
| 19 | daemon => { | ||||||
| 20 | name => 'bot', | ||||||
| 21 | lsb_sdesc => 'IRC Bot', | ||||||
| 22 | pid_file => 'bot.pid', | ||||||
| 23 | stderr_file => 'bot.err', | ||||||
| 24 | stdout_file => 'bot.log', | ||||||
| 25 | }, | ||||||
| 26 | connect => { | ||||||
| 27 | server => 'irc.perl.org', | ||||||
| 28 | port => '6667', | ||||||
| 29 | nick => 'bot', | ||||||
| 30 | name => 'Yet Another IRC Bot', | ||||||
| 31 | join => [ '#test', '#perl' ], | ||||||
| 32 | ssl => 0, | ||||||
| 33 | }, | ||||||
| 34 | }; | ||||||
| 35 | |||||||
| 36 | 1 | 6 | my $bot; | ||||
| 37 | |||||||
| 38 | 1 1 | 10 24 | lives_ok( sub { $bot = MODULE->new(%$settings) }, MODULE . '->new(@config)' ); | ||||
| 39 | |||||||
| 40 | 1 | 26 | throws_ok( sub { $bot = MODULE->new( | ||||
| 41 | %$settings, | ||||||
| 42 | plugins => ['MissingPlugin'], | ||||||
| 43 | 1 | 218 | ) }, qr/Unable to find or properly load/, MODULE . '->new(@config) + missing plugin' ); | ||||
| 44 | |||||||
| 45 | 1 | 30 | lives_ok( sub { $bot = MODULE->new( | ||||
| 46 | %$settings, | ||||||
| 47 | plugins => ['SimpleTestPlugin'], | ||||||
| 48 | 1 | 621 | ) }, MODULE . '->new(@config) + empty plugin' ); | ||||
| 49 | |||||||
| 50 | lives_ok( sub { | ||||||
| 51 | 1 | 29 | $bot->reload('SimpleTestPlugin') | ||||
| 52 | 1 | 289 | }, MODULE . '->reload SimpleTestPlugin' ); | ||||
| 53 | |||||||
| 54 | lives_ok( sub { | ||||||
| 55 | 1 | 27 | $bot->hook( {}, sub {}, { priority => 50 } ) | ||||
| 56 | 1 | 216 | }, MODULE . '->hook' ); | ||||
| 57 | |||||||
| 58 | lives_ok( sub { | ||||||
| 59 | $bot->hooks( | ||||||
| 60 | [ {}, sub {} ], | ||||||
| 61 | 1 | 26 | [ {}, sub {} ], | ||||
| 62 | ) | ||||||
| 63 | 1 | 200 | }, MODULE . '->hooks' ); | ||||
| 64 | |||||||
| 65 | lives_ok( sub { | ||||||
| 66 | 1 | 23 | $bot->helps( term => 'Description.', term2 => 'Description two.' ) | ||||
| 67 | 1 | 184 | }, MODULE . '->hooks' ); | ||||
| 68 | |||||||
| 69 | lives_ok( sub { | ||||||
| 70 | $bot->tick( 10, sub {} ) | ||||||
| 71 | 1 1 | 199 24 | }, MODULE . '->tick' ); | ||||
| 72 | |||||||
| 73 | lives_ok( sub { | ||||||
| 74 | $bot->ticks( | ||||||
| 75 | [ 10, sub {} ], | ||||||
| 76 | 1 | 26 | [ 10, sub {} ], | ||||
| 77 | ) | ||||||
| 78 | 1 | 182 | }, MODULE . '->ticks' ); | ||||
| 79 | |||||||
| 80 | lives_ok( sub { | ||||||
| 81 | $bot->subs( | ||||||
| 82 | name0 => sub {}, | ||||||
| 83 | name1 => sub {}, | ||||||
| 84 | ) | ||||||
| 85 | 1 1 | 186 27 | }, MODULE . '->ticks' ); | ||||
| 86 | |||||||
| 87 | lives_ok( sub { | ||||||
| 88 | 1 | 22 | $bot->register( qw( Alpha Beta Delta ) ) | ||||
| 89 | 1 | 229 | }, MODULE . '->ticks' ); | ||||
| 90 | |||||||
| 91 | 1 | 196 | done_testing; | ||||