The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Path::Extended::Test::Dir::Next;

use strict;
use warnings;
use Test::Classy::Base;

__PACKAGE__->mk_classdata( target => 'Path::Extended' );

sub initialize {
  my $class = shift;

  my $target = $class->target;
  eval "require $target" or $class->skip_this_class($@);
  $target->import;
}

sub next : Tests(4) {
  my $class = shift;

  my $dir = dir('t/tmp/next')->mkdir;

  ok $dir->exists, $class->message('made directory');

  my $file1 = file('t/tmp/next/file1.txt')->save('content1');
  my $file2 = file('t/tmp/next/file2.txt')->save('content2');

  ok !$dir->is_open, $class->message('directory is not open');

  my (@files, @dirs);
  while ( my $item = $dir->next ) {
    push @files, $item if -f $item;
    push @dirs,  $item if -d $item; # including '.' and '..'
  }
  ok @files == 2, $class->message('found two files');

  ok !$dir->is_open, $class->message('directory is not open');

  $dir->rmdir;
}

1;