#!/usr/bin/perl # invalid_directory.t # Copyright (c) 2006 Jonathan Rockway <jrockway@cpan.org> use Test::More tests => 7; use Directory::Scratch; use strict; use warnings; my $tmp = Directory::Scratch->new; my $d; ok($tmp->touch('foo'), 'create a file called foo'); $d = eval { $tmp->mkdir('foo'); }; ok(!$d, 'no directory'); ok($@, "can't create a directory with the same name as a file: $@"); undef $d; $d = eval { no warnings 'redefine'; # mostly here to make devel::cover happy; the above is the real test *Path::Class::Dir::mkpath = sub { mkdir $tmp->exists('foo') }; $tmp->mkdir('foo'); }; ok(!$d, 'no directory'); ok($@, "can't create a directory with the same name as a file: $@"); undef $d; $d = eval { # make mkdir not work no warnings 'redefine'; *Path::Class::Dir::mkpath = sub { return }; $tmp->mkdir('bar'); }; ok(!$d, 'no directory'); ok($@, "can't create a directory when mkdir doesn't work: $@");