| 1 | use strict; |
|---|
| 2 | use warnings; |
|---|
| 3 | use Test::More tests => 4; |
|---|
| 4 | use File::Temp; |
|---|
| 5 | use Path::Class; |
|---|
| 6 | |
|---|
| 7 | use Module::Setup; |
|---|
| 8 | |
|---|
| 9 | my $module_setup_dir = File::Temp->newdir; |
|---|
| 10 | my $target = File::Temp->newdir; |
|---|
| 11 | Module::Setup->new( |
|---|
| 12 | options => { |
|---|
| 13 | flavor_class => '+t::Flavor::LocalPlugin', |
|---|
| 14 | module_setup_dir => $module_setup_dir, |
|---|
| 15 | target => $target, |
|---|
| 16 | }, |
|---|
| 17 | argv => [ 'LocalPlugin' ], |
|---|
| 18 | )->run; |
|---|
| 19 | |
|---|
| 20 | ok -f Path::Class::Dir->new( $module_setup_dir, 'flavors', 'default', 'plugins', 'localplugin.pm' ); |
|---|
| 21 | |
|---|
| 22 | ok -f Path::Class::Dir->new( $module_setup_dir, 'flavors', 'default', 'template', 'text.txt' ); |
|---|
| 23 | ok -f Path::Class::Dir->new( $module_setup_dir, 'flavors', 'default', 'template', 'append.txt' ); |
|---|
| 24 | |
|---|
| 25 | ok -f Path::Class::Dir->new( $target, 'LocalPlugin', 'test.txt' ); |
|---|
| 26 | ok -f Path::Class::Dir->new( $target, 'LocalPlugin', 'append.txt' ); |
|---|
| 27 | |
|---|
| 28 | no warnings 'redefine'; |
|---|
| 29 | my $flavor; |
|---|
| 30 | *Module::Setup::stdout = sub { $flavor = $_[1] }; |
|---|
| 31 | Module::Setup->new( |
|---|
| 32 | options => { |
|---|
| 33 | pack => 1, |
|---|
| 34 | module_setup_dir => $module_setup_dir, |
|---|
| 35 | }, |
|---|
| 36 | argv => [ 'LocalPlugin' ], |
|---|
| 37 | )->run; |
|---|
| 38 | |
|---|
| 39 | like $flavor, qr/package LocalPlugin;/; |
|---|
| 40 | like $flavor, qr!plugin: localplugin.pm!; |
|---|
| 41 | |
|---|