use Test::More tests=> 95;
use strict;
use warnings;
use lib qw( ../lib ./lib );
use Egg::Helper;
ok my $e= Egg::Helper->run('vtest'), q{my $e= Egg::Helper->run('Vtest')};
ok my $conf= $e->config, q{my $conf= $e->config};
isa_ok $conf, 'HASH';
ok $conf->{project_name}, q{$conf->{project_name}};
ok $conf->{root}, q{$conf->{root}};
ok $conf->{start_dir}, q{$conf->{start_dir}};
isa_ok $e, 'Egg::Request';
isa_ok $e, 'Egg::Response';
isa_ok $e, 'Egg::Util';
isa_ok $e, 'Egg::Manager::Model';
isa_ok $e, 'Egg::Manager::View';
isa_ok $e, 'Egg::Component';
isa_ok $e, 'Egg::Component::Base';
isa_ok $e, 'Egg::Base';
isa_ok $e, 'Egg::Helper::Util::Base';
isa_ok $e, 'Egg::Helper::Util::VirtualProject';
can_ok $e, '_helper_get_options';
@ARGV= ("-o", "/test", "-h");
ok my $opt= $e->_helper_get_options, q{my $opt= $e->_helper_get_options};
isa_ok $opt, 'HASH';
is $opt->{output_path}, '/test', q{$opt->{output_path}, '/test'};
ok $opt->{help}, q{$opt->{help}};
can_ok $e, 'helper_is_platform';
my %OSTYPE= ( MSWin32=> 'Win32', MacOS=> 'MacOS', Unix=> 'Unix' );
my $OS= $OSTYPE{$^O} || 'Unix';
is $e->helper_is_platform, $OS, q{$e->helper_is_platform, $OS};
for (values %OSTYPE) {
my $method= 'helper_is_'. lc($_);
can_ok $e, $method;
if ($_ eq $OS) {
ok $e->$method, qq{\$e->$method};
} else {
ok ! $e->$method, qq{! \$e->$method};
}
}
can_ok $e, 'helper_perl_path';
can_ok $e, 'helper_temp_dir';
can_ok $e, 'helper_current_dir';
can_ok $e, 'helper_yaml_load';
ok my $hash= $e->helper_yaml_load(<<END_YAML), q{my $hash= $e->helper_yaml_load(<<END_YAML)};
test1: ok1
test2: ok2
END_YAML
isa_ok $hash, 'HASH';
is $hash->{test1}, 'ok1', q{$hash->{test1}, 'ok1'};
is $hash->{test2}, 'ok2', q{$hash->{test2}, 'ok2'};
can_ok $e, 'helper_stdout';
ok my $io= $e->helper_stdout( sub { print 'OK' } ),
q{my $io= $e->helper_stdout( sub { print 'OK' } )};
isa_ok $io, 'Egg::Util::STDIO::result';
ok ! $io->error, q{! $io->error};
is $io->result, 'OK', q{$io->result, 'OK'};
ok $io= $e->helper_stdout( sub { $e->helper_yaml_load } ),
q{$io= $e->stdio( sub { $e->helper_yaml_load } )};
ok $io->error, q{$io->error};
like $io->error, qr{I want yaml data}, q{qr{I want yaml data}};
ok ! $io->result, q{! $io->result};
can_ok $e, 'helper_stdin';
can_ok $e, 'helper_load_rc';
ok my $rc= $e->helper_load_rc, q{my $rc= $e->helper_load_rc};
isa_ok $rc, 'HASH';
can_ok $e, 'helper_chdir';
can_ok $e, 'helper_create_dir';
ok $e->helper_chdir("$conf->{root}/test", 1), q{$e->helper_chdir("$conf->{root}/test", 1)};
ok -e "$conf->{root}/test", q{-e "$conf->{root}/test"};
is $e->helper_current_dir, "$conf->{root}/test", q{$e->helper_current_dir, "$conf->{root}/test"};
ok $e->helper_chdir("$conf->{root}/test/test", 1), q{$e->helper_chdir("$conf->{root}/test/test", 1)};
ok -e "$conf->{root}/test/test", q{-e "$conf->{root}/test/test"};
is $e->helper_current_dir, "$conf->{root}/test/test", q{$e->helper_current_dir, "$conf->{root}/test/test"};
ok $e->helper_chdir($conf->{root}), q{$e->helper_chdir($conf->{root})};
is $e->helper_current_dir, $conf->{root}, q{$e->helper_current_dir, $conf->{root}};
can_ok $e, 'helper_remove_dir';
ok -e "$conf->{root}/test/test", q{-e "$conf->{root}/test/test"};
ok $e->helper_remove_dir("$conf->{root}/test"), q{$e->helper_remove_dir("$conf->{root}/test")};
ok ! -e "$conf->{root}/test/test", q{! -e "$conf->{root}/test/test"};
ok ! -e "$conf->{root}/test", q{! -e "$conf->{root}/test"};
can_ok $e, 'helper_prepare_param';
ok my $pm= $e->helper_prepare_param, q{my $param= $e->helper_prepare_param};
isa_ok $pm, 'HASH';
is $pm->{project_name}, $conf->{project_name}, q{$pm->{project_name}, $conf->{project_name}};
is $pm->{project_name}, $e->namespace, q{$pm->{project_name}, $e->namespace};
is $pm->{project_name}, $e->{namespace}, q{$pm->{project_name}, $e->{namespace}};
is $pm->{dir}, $e->config->{dir}, q{$pm->{dir}, $e->config->{dir}};
is $pm->{output_path}, $e->config->{root}, q{$pm->{output_path}, $e->config->{root}};
is $pm->{root}->(), $e->config->{root}, q{$pm->{root}->(), $e->config->{root}};
is $pm->{year}->(), (localtime time)[5]+ 1900, q{$pm->{year}->(), (localtime time)[5]+ 1900};
is $pm->{perl_path}->(), $e->helper_perl_path, q{$pm->{perl_path}->(), $e->helper_perl_path};
# is $pm->{gmtime_string}->(), gmtime time, q{$pm->{gmtime_string}->(), gmtime time};
isa_ok $pm->{document}, 'CODE';
isa_ok $pm->{dist}, 'CODE';
can_ok $e, 'helper_prepare_param_module';
ok $pm= $e->helper_prepare_param_module($pm, 'MY::MODULE::NAME'),
q{$pm= $e->helper_prepare_param_module($pm, 'MY::MODULE::NAME')};
is $pm->{module_name}, 'MY-MODULE-NAME', q{$pm->{module_name}, 'MY-MODULE-NAME'};
is $pm->{module_filepath}, 'MY/MODULE/NAME.pm', q{$pm->{module_filepath}, 'MY/MODULE/NAME.pm'};
is $pm->{module_filename}, 'NAME.pm', q{$pm->{module_filename}, 'NAME.pm'};
is $pm->{module_distname}, 'MY::MODULE::NAME', q{$pm->{module_distname}, 'MY::MODULE::NAME'};
is $pm->{module_basedir}, 'MY/MODULE', q{$pm->{module_basedir}, 'MY/MODULE'};
is $pm->{target_path}, "$pm->{output_path}/$pm->{module_name}",
q{$pm->{target_path}, "$pm->{output_path}/$pm->{module_name}"};
is $pm->{lib_dir}, "$pm->{output_path}/MY-MODULE-NAME/lib", q{$pm->{lib_dir}, "$pm->{output_path}/MY-MODULE-NAME/lib"};
is $pm->{lib_basedir}, "$pm->{lib_dir}/$pm->{module_basedir}",
q{$pm->{lib_basedir}, "$pm->{lib_dir}/$pm->{module_basedir}"};
can_ok 'Egg::Helper', 'helper_script';
can_ok 'Egg::Helper', 'out';
ok $io= $e->helper_stdout( sub { Egg::Helper->helper_script } ),
q{$io= $e->helper_stdout( sub { Egg::Helper->helper_script } )};
ok ! $io->error, q{! $io->error};
like $io->result, qr{^#\!.+}, q{qr{^#\!.+}};
like $io->result, qr{\buse Egg\:+Helper\;}, q{qr{\buse Egg\:+Helper\;}};
like $io->result, qr{\bEgg\:+Helper\->run\(.+}, q{qr{\bEgg\:+Helper\->run\(.+}};