App-Prove-Plugin-Elasticsearch

 view release on metacpan or  search on metacpan

t/App-ape-plan.t  view on Meta::CPAN

use strict;
use warnings;

package Test::GrapeApe::Planner;

use parent qw{Test::Class};
use Test::More;
use Test::Fatal;
use Test::Deep;
use Capture::Tiny qw{capture};

use App::ape::plan;

sub test_new : Test(5) {
    is(App::ape::plan->new(),2,"No args returns bad exit code");
    is(App::ape::plan->new(qw{--version 666 --show --prompt}),3,"Bad exit code returned due to incompatible options");

    no warnings qw{redefine once};
    local *App::Prove::Elasticsearch::Utils::process_configuration = sub{return {}};
    use warnings;

    is(App::ape::plan->new(qw{--version 666}),4,"Bad exit code returned due to insufficient configuration");

    no warnings qw{redefine once};
    local *App::Prove::Elasticsearch::Utils::process_configuration = sub {return { 'server.host' => 'bogus', 'server.port' => 'bogus'}};
    local *App::Prove::Elasticsearch::Utils::require_platformer = sub { return 'Grape::Ape::BananaBoat' };
    local *Grape::Ape::BananaBoat::get_platforms = sub { return ['grape', 'ape'] };
    local *App::Prove::Elasticsearch::Utils::require_planner = sub { return 'Grape::Ape::BananaBoat' };
    local *Grape::Ape::BananaBoat::check_index = sub {};
    local *App::Prove::Elasticsearch::Utils::require_queue = sub { return 'Grape::Ape::BananaBoat' };
    local *Grape::Ape::BananaBoat::new = sub { return bless({},'Grape::Ape::BananaBoat')};
    local *Grape::Ape::BananaBoat::_get_searcher = sub { return 'Grape::Ape::LostBananaPeel' };
    local *App::Prove::State::new = sub { return bless({},'App::Prove::State') };
    local *App::Prove::State::extensions = sub {};
    local *App::Prove::State::get_tests = sub { my (undef,undef,@ret) = @_; return @ret };
    use warnings;

    my $obj = App::ape::plan->new(qw{--version 666 --ext .t --platform zippy });

    my $expected = {
       'allplatforms' => undef,
       'exts' => [
         '.t'
       ],
       'name' => undef,
       'pairwise' => undef,
       'platforms' => [
         'zippy'
       ],
       'prompt' => undef,
       'recurse' => undef,
       'replay' => undef,
       'requeue' => undef,
       'show' => undef,
       'version' => '666'
    };

    isa_ok($obj,"App::ape::plan");
    is_deeply($obj->{options},$expected,"args appear to parse correctly");
}

sub test_run : Test(5) {
    no warnings qw{redefine once};
    local *App::ape::plan::_build_plans = sub { return ( { noop => 1 } ) };
    local *Banana::In::Tailpipe::get_plan_status = sub {};
    local *App::ape::plan::_print_plan = sub {};
    use warnings;



( run in 1.413 second using v1.01-cache-2.11-cpan-54e63673c56 )