From cdae7275d29c9c370ec7e714dd71af2a1076c0d0 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Sat, 4 Apr 2020 14:25:27 +1300 Subject: WIP: Add Mock::CommandRegistry for testing commands --- test/test_ping.t | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) (limited to 'test/test_ping.t') diff --git a/test/test_ping.t b/test/test_ping.t index f7ae60f..c31c538 100755 --- a/test/test_ping.t +++ b/test/test_ping.t @@ -2,33 +2,27 @@ use strict; use warnings; - use Test::Simple tests => 2; +use Mock::CommandRegistry; use Plugin::Ping; -our $registered; -our $response; -my $expected = "user: pong"; - -sub register_cmd { - my ($module, $name, $run) = @_; - - $registered = 1; - - $response = $run->( - undef, # irc - undef, # logger - 'user!who@example.com', - undef, # where - undef, # ided - undef, # rest - undef, # no reenter - undef, # arguments - ); -} - -Plugin::Ping->configure(\®ister_cmd, undef, undef, undef); - -ok($registered, "plugin registered command"); -ok($response eq $expected, "echo expectation met"); +my $cr = new Mock::CommandRegistry; +my $register = sub { $cr->register(@_); }; +Plugin::Ping->configure($register, undef, undef, undef); +ok($cr->is_registered_to_owner("Plugin::Ping", "ping"), "registered command"); + +my $pinger = "somelad"; +my %ctx = ( + irc => undef, + logger => undef, + who => "$pinger!who\@example.com", + where => undef, + ided => undef, + rest => undef, + no_reenter => undef, + args => undef +); +my $expected = "$pinger: pong"; +my $response = $cr->run_owned("Plugin::Ping", "ping", %ctx); +ok($response eq $expected, "pong format correct"); -- cgit v1.1