Commit | Line | Data |
fd56ddb6 |
1 | |
2 | use warnings FATAL => 'all'; |
3 | use strict; |
4 | |
5 | package Foo; |
6 | use Moose; |
fd56ddb6 |
7 | use MooseX::Types::Path::Class; |
8 | |
9 | has 'dir' => ( |
10 | is => 'ro', |
11 | isa => 'Path::Class::Dir', |
12 | required => 1, |
13 | coerce => 1, |
14 | ); |
15 | |
16 | has 'file' => ( |
17 | is => 'ro', |
18 | isa => 'Path::Class::File', |
19 | required => 1, |
20 | coerce => 1, |
21 | ); |
22 | |
23 | package Bar; |
24 | use Moose; |
fd56ddb6 |
25 | use MooseX::Types::Path::Class qw( Dir File ); |
26 | |
27 | has 'dir' => ( |
28 | is => 'ro', |
29 | isa => Dir, |
30 | required => 1, |
31 | coerce => 1, |
32 | ); |
33 | |
34 | has 'file' => ( |
35 | is => 'ro', |
36 | isa => File, |
37 | required => 1, |
38 | coerce => 1, |
39 | ); |
40 | |
41 | package main; |
42 | |
43 | use Test::More; |
9194adce |
44 | use Path::Class; |
6d4d954d |
45 | plan tests => 10; |
fd56ddb6 |
46 | |
9194adce |
47 | my $dir = dir('', 'tmp'); |
48 | my $file = file('', 'tmp', 'foo'); |
49 | |
fd56ddb6 |
50 | my $check = sub { |
51 | my $o = shift; |
52 | isa_ok( $o->dir, 'Path::Class::Dir' ); |
9194adce |
53 | cmp_ok( $o->dir, 'eq', "$dir", "dir is $dir" ); |
fd56ddb6 |
54 | isa_ok( $o->file, 'Path::Class::File' ); |
9194adce |
55 | cmp_ok( $o->file, 'eq', "$file", "file is $file" ); |
fd56ddb6 |
56 | }; |
57 | |
58 | for my $class (qw(Foo Bar)) { |
6d4d954d |
59 | my $o = $class->new( dir => "$dir", file => [ '', 'tmp', 'foo' ] ); |
fd56ddb6 |
60 | isa_ok( $o, $class ); |
61 | $check->($o); |
62 | } |
63 | |