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;

eval q{ use Path::Class qw(file foreign_file); 1 }
  or plan skip_all => 'Path::Class required for these tests';

plan tests => 4;

{
  my $f = file(qw(foo bar));
  my $fs = $f->stringify;

  my $n = $f->as_foreign('Native');
  my $ns = $n->stringify;

  is($fs, $ns, 'Native == file()');
}

{
  my @path = qw( y a p c ); # can you tell i wish i was there?
  my $current = $File::Spec::ISA[0];

  my ($format, $exp) = ( $current eq 'Win32'
    ? (qw(Unix  y/a/p/c))
    : (qw(Win32 y\a\p\c))
  );
  my $fsclass = "File::Spec::$format";

  my $f = foreign_file($format => @path);
  is($f->stringify, $exp, "$format file path");
  is($f->stringify, $fsclass->catfile(@path), "same as $fsclass");
  is($f->as_foreign("Native")->stringify, File::Spec->catfile(@path), 'as_foreign("Native") same as File::Spec');
}