#!/usr/bin/perl use strict; use warnings; use Test::More tests => 22; BEGIN { use File::Spec; use lib File::Spec->catdir(File::Spec->curdir(), "t", "lib"); } use File::Path; use File::Find::Object::TreeCreate; { my $t = File::Find::Object::TreeCreate->new(); # TEST ok ($t, "TreeCreate object was initialized"); # TEST is ($t->get_path("./t/file.txt"), File::Spec->catfile(File::Spec->curdir(), "t", "file.txt")); # TEST is ($t->get_path("./t/mydir/"), File::Spec->catdir(File::Spec->curdir(), "t", "mydir")); # TEST is ($t->get_path("./t/hello/there/world.jpg"), File::Spec->catfile(File::Spec->curdir(), "t", "hello", "there", "world.jpg")); # TEST is ($t->get_path("./one/two/three/four/"), File::Spec->catdir(File::Spec->curdir(), "one", "two", "three", "four")); } { my $t = File::Find::Object::TreeCreate->new(); # TEST ok ($t->exist("./MANIFEST"), "Checking the exist() method"); # TEST ok (!$t->exist("./BKLASDJASFDJODIJASDOJASODJ.wok"), "Checking the exist() method"); # TEST ok ($t->is_file("./MANIFEST"), "Checking the is_file method"); # TEST ok (! $t->is_file ("./t"), "Checking the is_file method - 2"); # TEST ok (! $t->is_dir("./MANIFEST"), "Checking the is_dir method - false"); # TEST ok ($t->is_dir ("./t"), "Checking the is_dir method - true"); # TEST is ($t->cat("./t/sample-data/h.txt"), "Hello.", "Checking the cat method"); { mkdir ($t->get_path("./t/sample-data/ls-test")); mkdir ($t->get_path("./t/sample-data/ls-test/a")); open O, ">", $t->get_path("./t/sample-data/ls-test/b.txt"); print O "Yowza"; close(O); mkdir ($t->get_path("./t/sample-data/ls-test/c")); open O, ">", $t->get_path("./t/sample-data/ls-test/h.xls"); print O "FooBardom!\n"; close(O); # TEST is_deeply ($t->ls("./t/sample-data/ls-test"), ["a","b.txt","c","h.xls"], "Testing the ls method", ); # Cleanup rmtree ($t->get_path("./t/sample-data/ls-test")); } { my $tree = { 'name' => "tree-test-1/", 'subs' => [ { 'name' => "b.doc", 'contents' => "This file was spotted in the wild.", }, { 'name' => "a/", }, { 'name' => "foo/", 'subs' => [ { 'name' => "yet/", }, ], }, ], }; $t->create_tree("./t/sample-data/", $tree); # TEST is_deeply ($t->ls("./t/sample-data/tree-test-1"), ["a", "b.doc", "foo"], "Testing the contents of the root tree" ); # TEST ok ($t->is_dir("./t/sample-data/tree-test-1/a"), "a is a dir" ); # TEST is_deeply ($t->ls("./t/sample-data/tree-test-1/a"), [], "Testing the contents of a" ); # TEST is_deeply ($t->ls("./t/sample-data/tree-test-1/foo"), ["yet"], "Testing the contents of foo" ); # TEST ok ($t->is_dir("./t/sample-data/tree-test-1/foo/yet"), "Testing that foo/yet is a dir" ); # TEST is_deeply ($t->ls("./t/sample-data/tree-test-1/foo/yet"), [], "Testing that foo/yet is a dir" ); # TEST ok ($t->is_file("./t/sample-data/tree-test-1/b.doc"), "Checking that b.doc is a file" ); # TEST is ($t->cat("./t/sample-data/tree-test-1/b.doc"), "This file was spotted in the wild.", "Checking for contents of b.doc" ); # Cleanup rmtree ($t->get_path("./t/sample-data/tree-test-1")); } { # TEST is ($t->get_path("s/hello"), File::Spec->catfile("s", "hello"), "Bug that eliminated ^[AnyChar]/ instead of ^\\./" ); } }