added changes
[gitmo/MooseX-Types-Path-Class.git] / t / 04.existing.t
1
2 {
3
4     package Bar;
5     use Moose;
6     use MooseX::Types::Path::Class qw( ExistingDir ExistingFile );
7
8     has 'dir' => (
9         is       => 'ro',
10         isa      => ExistingDir,
11         coerce   => 1,
12     );
13
14     has 'file' => (
15         is       => 'ro',
16         isa      => ExistingFile,
17         coerce   => 1,
18     );
19 }
20
21 package main;
22
23 use strict;
24 use warnings;
25 use Test::More;
26 use Test::Fatal;
27
28 my $no_exist = '/should/not/exist';
29
30 plan skip_all => "Preconditions failed; your filesystem is strange"
31     unless -d "/etc" && -e "/etc/passwd";
32
33 plan skip_all => "Preconditions failed"
34     if -e $no_exist;
35
36 use MooseX::Types::Path::Class qw(ExistingFile ExistingDir);
37
38 ok is_ExistingFile(to_ExistingFile("/etc/passwd")), '/etc/passwd is an existing file';
39
40 ok is_ExistingDir(to_ExistingDir("/etc/")), '/etc/ is an existing directory';
41
42 like(
43     exception { Bar->new(dir  => $no_exist); },
44     qr/Directory .* must exist/,
45     'no exist dir throws',
46 );
47 like(
48     exception { Bar->new(file => "$no_exist/either"); },
49     qr/File .* must exist/,
50     'no exist file throws',
51 );
52
53 done_testing;
54