7 use Test::More tests => 144;
10 use Moose::Util::TypeConstraints;
14 => where { $_ =~ m#^(/[a-zA-Z0-9_.-]+)+/?$#
15 || $_ =~ m#^([c-zC-Z]:/[a-zA-Z0-9_.-]+)# };
19 use Moose::Util::TypeConstraints;
28 my ( $self, $params ) = @_;
29 confess $params->{path} . " does not exist"
30 unless -e $params->{path};
33 # Defining this causes the FIRST call to Baz->new w/o param to fail,
34 # if no call to ANY Moose::Object->new was done before.
43 use Moose::Util::TypeConstraints;
52 my ( $self, $params ) = @_;
53 confess $params->{path} . " does not exist"
54 unless -e $params->{path};
57 # Defining this causes the FIRST call to Qee->new w/o param to fail...
58 # if no call to ANY Moose::Object->new was done before.
67 use Moose::Util::TypeConstraints;
76 my ( $self, $params ) = @_;
77 confess $params->{path} . " does not exist"
78 unless -e $params->{path};
81 # Having no DEMOLISH, everything works as expected...
84 check_em ( 'Baz' ); # 'Baz plain' will fail, aka NO error
85 check_em ( 'Qee' ); # ok
86 check_em ( 'Foo' ); # ok
88 check_em ( 'Qee' ); # 'Qee plain' will fail, aka NO error
89 check_em ( 'Baz' ); # ok
90 check_em ( 'Foo' ); # ok
92 check_em ( 'Foo' ); # ok
93 check_em ( 'Baz' ); # ok !
94 check_em ( 'Qee' ); # ok
101 # Uncomment to see, that it is really any first call.
102 # Subsequents calls will not fail, aka giving the correct error.
105 my $obj = eval { $pkg->new; };
106 ::like( $@, qr/is required/, "... $pkg plain" );
107 ::is( $obj, undef, "... the object is undef" );
111 my $obj = eval { $pkg->new(); };
112 ::like( $@, qr/is required/, "... $pkg empty" );
113 ::is( $obj, undef, "... the object is undef" );
117 my $obj = eval { $pkg->new ( undef ); };
118 ::like( $@, qr/is required/, "... $pkg undef" );
119 ::is( $obj, undef, "... the object is undef" );
124 my $obj = eval { $pkg->new ( %param ); };
125 ::like( $@, qr/is required/, "... $pkg undef param" );
126 ::is( $obj, undef, "... the object is undef" );
130 my $obj = eval { $pkg->new ( path => '/' ); };
131 ::like( $@, qr/does not pass the type constraint/, "... $pkg root path forbidden" );
132 ::is( $obj, undef, "... the object is undef" );
136 my $obj = eval { $pkg->new ( path => '/this_path/does/not_exist' ); };
137 ::like( $@, qr/does not exist/, "... $pkg non existing path" );
138 ::is( $obj, undef, "... the object is undef" );
142 my $obj = eval { $pkg->new ( path => $FindBin::Bin ); };
143 ::is( $@, '', "... $pkg no error" );
144 ::isa_ok( $obj, $pkg );
145 ::isa_ok( $obj, 'Moose::Object' );
146 ::is( $obj->path, $FindBin::Bin, "... $pkg got the right value" );