The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More 0.96;

my $mod = 'Dist::Metadata::Struct';
eval "require $mod" or die $@;

# all these translate into "Native"
foreach my $test (
  [ '' => 'Native' ],
  [ qw( File::Spec         Native ) ],
  [ qw( File::Spec::Native Native ) ],
  [ qw(             Native Native ) ],
  [ qw(             Win32  Win32  ) ],
  [ qw( File::Spec::Win32  Win32  ) ],
) {
  my ( $spec, $exp ) = @$test;
  my $dist = new_ok( $mod, [ file_spec => $spec, files => {} ] );
  is( $dist->file_spec, $exp, "spec '$spec' => '$exp'" );
}

# test using default File::Spec
{
  my $dist = new_ok( $mod, [ file_spec => '', files => {
    README => 'read me',
    'Module.pm' => \"package Some::Module;\nour \$VERSION = 2;",
  } ] );
  is_deeply( $dist->determine_packages, {'Some::Module' => { file => 'Module.pm', version => 2 }},
    'found package in root' );
}

done_testing;