setup_home tests
André Walker [Thu, 26 Jul 2012 01:58:06 +0000 (22:58 -0300)]
t/aggregate/unit_core_setup_home.t [new file with mode: 0644]
t/lib/TestAppSetupHome.pm [new file with mode: 0644]

diff --git a/t/aggregate/unit_core_setup_home.t b/t/aggregate/unit_core_setup_home.t
new file mode 100644 (file)
index 0000000..da424b8
--- /dev/null
@@ -0,0 +1,83 @@
+#!/usr/bin/env perl
+use warnings;
+use strict;
+use Test::More;
+use Catalyst::IOC::Container;
+use FindBin '$Bin';
+use lib "$Bin/../lib";
+use TestAppSetupHome;
+use vars '%ENV';
+
+my $lib = "$Bin/../lib";
+my @homes_and_roots = (
+    [
+        "$lib/TestAppSetupHome",
+        "$lib/TestAppSetupHome/root",
+    ],
+    [
+        "$lib/TestAppSetupHomeENV",
+        "$lib/TestAppSetupHomeENV/root",
+    ],
+    [
+        "$lib/TestAppSetupHomeFLAG",
+        "$lib/TestAppSetupHomeFLAG/root",
+    ],
+);
+
+for my $home_and_root (@homes_and_roots) {
+    for (@$home_and_root) {
+        mkdir $_;
+    }
+}
+
+{
+    my $home_flag;
+    delete $ENV{CATALYST_HOME} if exists $ENV{CATALYST_HOME};
+
+    my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
+    ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
+    is($home, $homes_and_roots[0][0], 'value is expected');
+    ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
+    is($root, $homes_and_roots[0][1], 'value is expected');
+}
+
+{
+    my $home_flag;
+    $ENV{CATALYST_HOME} = $homes_and_roots[1][0];
+
+    my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
+    ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
+    is($home, $homes_and_roots[1][0], 'value is expected');
+    ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
+    is($root, $homes_and_roots[1][1], 'value is expected');
+}
+
+{
+    my $home_flag = $homes_and_roots[2][0];
+    delete $ENV{CATALYST_HOME} if exists $ENV{CATALYST_HOME};
+
+    my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
+    ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
+    is($home, $homes_and_roots[2][0], 'value is expected');
+    ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
+    is($root, $homes_and_roots[2][1], 'value is expected');
+}
+
+{
+    my $home_flag       = $homes_and_roots[2][0];
+    $ENV{CATALYST_HOME} = $homes_and_roots[1][0];
+
+    my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
+    ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
+    is($home, $homes_and_roots[2][0], 'value is expected');
+    ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
+    is($root, $homes_and_roots[2][1], 'value is expected');
+}
+
+for my $home_and_root (@homes_and_roots) {
+    for (@$home_and_root) {
+        rmdir $_;
+    }
+}
+
+done_testing;
diff --git a/t/lib/TestAppSetupHome.pm b/t/lib/TestAppSetupHome.pm
new file mode 100644 (file)
index 0000000..d762053
--- /dev/null
@@ -0,0 +1,7 @@
+package TestAppSetupHome;
+use Moose;
+extends 'Catalyst';
+
+__PACKAGE__->setup;
+__PACKAGE__->meta->make_immutable;
+1;