broke out Getopt tests so it can be an optional dependency
Todd Hepler [Mon, 17 Mar 2008 01:49:12 +0000 (01:49 +0000)]
t/01.basic.t
t/02.getopt.t [new file with mode: 0644]

index 01cb366..345a135 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 
 package Foo;
 use Moose;
-with 'MooseX::Getopt';
 use MooseX::Types::Path::Class;
 
 has 'dir' => (
@@ -23,7 +22,6 @@ has 'file' => (
 
 package Bar;
 use Moose;
-with 'MooseX::Getopt';
 use MooseX::Types::Path::Class qw( Dir File );
 
 has 'dir' => (
@@ -44,7 +42,7 @@ package main;
 
 use Test::More;
 use Path::Class;
-plan tests => 20;
+plan tests => 10;
 
 my $dir = dir('', 'tmp');
 my $file = file('', 'tmp', 'foo');
@@ -58,19 +56,7 @@ my $check = sub {
 };
 
 for my $class (qw(Foo Bar)) {
-    my $o;
-
-#    $o = $class->new( dir => '/tmp', file => [ '', 'tmp', 'foo' ] );
-    $o = $class->new( dir => "$dir", file => [ '', 'tmp', 'foo' ] );
-    isa_ok( $o, $class );
-    $check->($o);
-    @ARGV = qw(
-        --dir
-        /tmp
-        --file
-        /tmp/foo
-    );
-    $o = $class->new_with_options;
+    my $o = $class->new( dir => "$dir", file => [ '', 'tmp', 'foo' ] );
     isa_ok( $o, $class );
     $check->($o);
 }
diff --git a/t/02.getopt.t b/t/02.getopt.t
new file mode 100644 (file)
index 0000000..047ccdf
--- /dev/null
@@ -0,0 +1,82 @@
+
+use warnings FATAL => 'all';
+use strict;
+use English qw(-no_match_vars);
+
+eval { require MooseX::Getopt; };
+if ($EVAL_ERROR) {
+    plan( skip_all => 'MooseX::Getopt required for this test' );
+}
+
+package Foo;
+use Moose;
+with 'MooseX::Getopt';
+use MooseX::Types::Path::Class;
+
+has 'dir' => (
+    is       => 'ro',
+    isa      => 'Path::Class::Dir',
+    required => 1,
+    coerce   => 1,
+);
+
+has 'file' => (
+    is       => 'ro',
+    isa      => 'Path::Class::File',
+    required => 1,
+    coerce   => 1,
+);
+
+package Bar;
+use Moose;
+with 'MooseX::Getopt';
+use MooseX::Types::Path::Class qw( Dir File );
+
+has 'dir' => (
+    is       => 'ro',
+    isa      => Dir,
+    required => 1,
+    coerce   => 1,
+);
+
+has 'file' => (
+    is       => 'ro',
+    isa      => File,
+    required => 1,
+    coerce   => 1,
+);
+
+package main;
+
+use Test::More;
+use Path::Class;
+plan tests => 20;
+
+my $dir = dir('', 'tmp');
+my $file = file('', 'tmp', 'foo');
+
+my $check = sub {
+    my $o = shift;
+    isa_ok( $o->dir, 'Path::Class::Dir' );
+    cmp_ok( $o->dir, 'eq', "$dir", "dir is $dir" );
+    isa_ok( $o->file, 'Path::Class::File' );
+    cmp_ok( $o->file, 'eq', "$file", "file is $file" );
+};
+
+for my $class (qw(Foo Bar)) {
+    my $o;
+
+    $o = $class->new( dir => "$dir", file => [ '', 'tmp', 'foo' ] );
+    isa_ok( $o, $class );
+    $check->($o);
+    @ARGV = qw(
+        --dir
+        /tmp
+        --file
+        /tmp/foo
+    );
+    $o = $class->new_with_options;
+    isa_ok( $o, $class );
+    $check->($o);
+}
+