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&amp;spell=1&amp;sa=X&amp;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 )