version 0.57
[sepia.git] / test.pl
blob38a9c6fb91550035b7e10575c7a608546938d869
1 #!/usr/bin/env perl
2 use Test::Simple tests => 22;
4 require Data::Dumper;
5 require Sepia;
6 require Xref;
7 ok(1, 'loaded');
9 Sepia::Xref::rebuild;
10 ok(1, 'rebuild');
12 sub all
14 my $ok = 1;
15 $ok &&= $_ for @_;
16 $ok;
19 my @loc1 = @{(Sepia::location->('location'))[0]};
20 ok(@loc1, 'location 1');
21 my @loc2 = @{(Sepia::location->('Sepia::location'))[0]};
22 ok(@loc2, 'fullname location');
23 ok(all(map { $loc1[$_] eq $loc2[$_] } 0..$#loc1), 'sameness');
24 ok($loc1[0] =~ /Sepia\.pm$/, "file: $loc1[0]");
25 ok($loc1[1] =~ /^\d+$/, "line: $loc1[1]");
26 ok($loc1[2] eq 'location', "name: $loc1[2]");
28 sub apply_to_loc # 3 tests per call.
30 my $f = shift;
31 my $loc1 = $f->('location');
32 ok($loc1, 'location 1');
33 my $loc2 = $f->('Sepia::location');
34 ok($loc2, 'fullname location');
35 my $ok = 1;
36 ok(all(map { $loc1->[$_] eq $loc2->[$_] } 0..$#{$loc1}), 'sameness');
37 $loc1;
40 # 8 tests to here.
41 apply_to_loc(\&Sepia::Xref::callers);
42 apply_to_loc(\&Sepia::Xref::callees);
44 my @subs = Sepia::mod_subs('Sepia');
45 ok(all(map { defined &{"Sepia::$_"} } @subs), 'mod_subs');
46 # 15 to here
47 ok(Sepia::module_info('Sepia', 'name') eq 'Sepia');
48 ok(Sepia::module_info('Sepia', 'version') eq $Sepia::VERSION);
49 ok(Sepia::module_info('Sepia', 'file') =~ /Sepia\.pm$/);
50 ok(Sepia::module_info('Sepia', 'is_core') == 0);
51 my @mu = sort(Sepia::module_info('Sepia', 'modules_used'));
52 my @mu_exp = qw(B Cwd Exporter Module::Info strict);
53 ok(all(map { $mu[$_] eq $mu_exp[$_] } 0..$#mu), "@mu");
54 ok((Sepia::module_info('Sepia', 'packages_inside'))[0] eq 'Sepia');
55 ok((Sepia::module_info('Sepia', 'superclasses'))[0] eq 'Exporter');
56 # 22 to here
58 exit;