Acme-ICan-tSpell
view release on metacpan or search on metacpan
t/01-test.t view on Meta::CPAN
use Test::More;
use Acme::ICan::tSpell;
use Test::MockObject;
my $responses = [{
content => '<div class="med"><p class="sp_cnt card-section"><span class="spell">Showing results for</span> <a class="spell" href="/search?q=tanks&spell=1&sa=X&ved=0ahUKEwiswcrA4erSAhUDfRoKHSjgC-kQvwUIGSgA"><b><i>tanks</i></b><...
success => 1
}, { content => '', success => 1 }];
(my $tiny = Test::MockObject->new)->mock(
'get', sub {
shift @{$responses};
}
);
=pod
my $this_thing = Acme::ICan'tSpell->new;
is $this_thing->spell('awsome'), 'awesome';
is $this_thing->spell('takns'), 'tanks';
is $this_thing->spell('thakns'), 'thanks';
is $this_thing->spell('thakn yuo'), 'thank you';
=cut
my $acme = Acme::ICan::tSpell->new(
tiny => $tiny,
);
is $acme->spell('takns'), 'tanks';
(my $dead = Test::MockObject->new)->mock('get', sub { return {
'reason' => 'Not Found',
'headers' => {
'vary' => 'Accept-Encoding',
'server' => 'nginx/1.10.0 (Ubuntu)',
'connection' => 'keep-alive',
'date' => 'Mon, 13 Mar 2017 15:49:56 GMT',
'content-length' => '178',
'content-type' => 'text/html'
},
'protocol' => 'HTTP/1.1',
'status' => '404',
};});
my $dead_client = Acme::ICan::tSpell->new(
tiny => $dead,
);
eval { $dead_client->spell("takns"); };
my $death = $@;
like($death, qr/^something went terribly wrong/, "caught the carp");
done_testing();
( run in 1.595 second using v1.01-cache-2.11-cpan-13bb782fe5a )