6 use Test::More no_plan => 1;
18 use Moose::Util::TypeConstraints;
22 => where { $_ =~ m#^(/[a-zA-Z0-9_.-]+)+$#; }; # '/' (root) forbidden!
28 use Moose::Util::TypeConstraints;
39 my ( $self, $params ) = @_;
41 confess $params->{path} . " does not exist" unless -e $params->{path};
46 # Defining this causes the FIRST call to Baz->new w/o param to fail,
47 # if no call to ANY Moose::Object->new was done before.
60 use Moose::Util::TypeConstraints;
71 my ( $self, $params ) = @_;
73 confess $params->{path} . " does not exist" unless -e $params->{path};
78 # Defining this causes the FIRST call to Qee->new w/o param to fail...
79 # if no call to ANY Moose::Object->new was done before.
92 use Moose::Util::TypeConstraints;
103 my ( $self, $params ) = @_;
105 confess $params->{path} . " does not exist" unless -e $params->{path};
110 # Having no DEMOLISH, everything works as expected...
114 # Uncomment only one block per test run:
118 check_em ( 'Baz' ); # 'Baz plain' will fail, aka NO error
119 check_em ( 'Qee' ); # ok
120 check_em ( 'Foo' ); # ok
124 check_em ( 'Qee' ); # 'Qee plain' will fail, aka NO error
125 check_em ( 'Baz' ); # ok
126 check_em ( 'Foo' ); # ok
130 check_em ( 'Foo' ); # ok
131 check_em ( 'Baz' ); # ok !
132 check_em ( 'Qee' ); # ok
142 # Uncomment to see, that it is really any first call.
143 # Subsequents calls will not fail, aka giving the correct error.
148 my $obj = eval { $pkg->new; };
149 ::like ( $@, qr/is required/, "... $pkg plain" );
150 ::is ( $obj, undef, "" );
154 my $obj = eval { $pkg->new(); };
155 ::like ( $@, qr/is required/, "... $pkg empty" );
156 ::is ( $obj, undef, "" );
160 my $obj = eval { $pkg->new ( undef ); };
161 ::like ( $@, qr/is required/, "... $pkg undef" );
162 ::is ( $obj, undef, "" );
167 my $obj = eval { $pkg->new ( %param ); };
168 ::like ( $@, qr/is required/, "... $pkg undef param" );
169 ::is ( $obj, undef, "" );
173 my $obj = eval { $pkg->new ( path => '/' ); };
174 ::like ( $@, qr/does not pass the type constraint/, "... $pkg root path forbidden" );
175 ::is ( $obj, undef, "" );
179 my $obj = eval { $pkg->new ( path => '/this_path/does/not_exist' ); };
180 ::like ( $@, qr/does not exist/, "... $pkg non existing path" );
181 ::is ( $obj, undef, "" );
185 my $obj = eval { $pkg->new ( path => '/tmp' ); };
186 ::is ( $@, '', "... $pkg no error" );
187 ::isa_ok ( $obj, $pkg );
188 ::isa_ok ( $obj, 'Moose::Object' );
189 ::is ( $obj->path, '/tmp', "... $pkg got the right value" );