7 use Test::More tests => 146;
12 use_ok('Moose::Util::TypeConstraints');
17 => where { $_ =~ m#^(/[a-zA-Z0-9_.-]+)+$#
18 || $_ =~ m#^([c-zC-Z]:/[a-zA-Z0-9_.-]+)# };
22 use Moose::Util::TypeConstraints;
31 my ( $self, $params ) = @_;
32 confess $params->{path} . " does not exist"
33 unless -e $params->{path};
36 # Defining this causes the FIRST call to Baz->new w/o param to fail,
37 # if no call to ANY Moose::Object->new was done before.
46 use Moose::Util::TypeConstraints;
55 my ( $self, $params ) = @_;
56 confess $params->{path} . " does not exist"
57 unless -e $params->{path};
60 # Defining this causes the FIRST call to Qee->new w/o param to fail...
61 # if no call to ANY Moose::Object->new was done before.
70 use Moose::Util::TypeConstraints;
79 my ( $self, $params ) = @_;
80 confess $params->{path} . " does not exist"
81 unless -e $params->{path};
84 # Having no DEMOLISH, everything works as expected...
87 check_em ( 'Baz' ); # 'Baz plain' will fail, aka NO error
88 check_em ( 'Qee' ); # ok
89 check_em ( 'Foo' ); # ok
91 check_em ( 'Qee' ); # 'Qee plain' will fail, aka NO error
92 check_em ( 'Baz' ); # ok
93 check_em ( 'Foo' ); # ok
95 check_em ( 'Foo' ); # ok
96 check_em ( 'Baz' ); # ok !
97 check_em ( 'Qee' ); # ok
104 # Uncomment to see, that it is really any first call.
105 # Subsequents calls will not fail, aka giving the correct error.
108 my $obj = eval { $pkg->new; };
109 ::like( $@, qr/is required/, "... $pkg plain" );
110 ::is( $obj, undef, "... the object is undef" );
114 my $obj = eval { $pkg->new(); };
115 ::like( $@, qr/is required/, "... $pkg empty" );
116 ::is( $obj, undef, "... the object is undef" );
120 my $obj = eval { $pkg->new ( undef ); };
121 ::like( $@, qr/is required/, "... $pkg undef" );
122 ::is( $obj, undef, "... the object is undef" );
127 my $obj = eval { $pkg->new ( %param ); };
128 ::like( $@, qr/is required/, "... $pkg undef param" );
129 ::is( $obj, undef, "... the object is undef" );
133 my $obj = eval { $pkg->new ( path => '/' ); };
134 ::like( $@, qr/does not pass the type constraint/, "... $pkg root path forbidden" );
135 ::is( $obj, undef, "... the object is undef" );
139 my $obj = eval { $pkg->new ( path => '/this_path/does/not_exist' ); };
140 ::like( $@, qr/does not exist/, "... $pkg non existing path" );
141 ::is( $obj, undef, "... the object is undef" );
145 my $obj = eval { $pkg->new ( path => $FindBin::Bin ); };
146 ::is( $@, '', "... $pkg no error" );
147 ::isa_ok( $obj, $pkg );
148 ::isa_ok( $obj, 'Moose::Object' );
149 ::is( $obj->path, $FindBin::Bin, "... $pkg got the right value" );