setup_home tests
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_setup_home.t
CommitLineData
f84ac410 1#!/usr/bin/env perl
2use warnings;
3use strict;
4use Test::More;
5use Catalyst::IOC::Container;
6use FindBin '$Bin';
7use lib "$Bin/../lib";
8use TestAppSetupHome;
9use vars '%ENV';
10
11my $lib = "$Bin/../lib";
12my @homes_and_roots = (
13 [
14 "$lib/TestAppSetupHome",
15 "$lib/TestAppSetupHome/root",
16 ],
17 [
18 "$lib/TestAppSetupHomeENV",
19 "$lib/TestAppSetupHomeENV/root",
20 ],
21 [
22 "$lib/TestAppSetupHomeFLAG",
23 "$lib/TestAppSetupHomeFLAG/root",
24 ],
25);
26
27for my $home_and_root (@homes_and_roots) {
28 for (@$home_and_root) {
29 mkdir $_;
30 }
31}
32
33{
34 my $home_flag;
35 delete $ENV{CATALYST_HOME} if exists $ENV{CATALYST_HOME};
36
37 my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
38 ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
39 is($home, $homes_and_roots[0][0], 'value is expected');
40 ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
41 is($root, $homes_and_roots[0][1], 'value is expected');
42}
43
44{
45 my $home_flag;
46 $ENV{CATALYST_HOME} = $homes_and_roots[1][0];
47
48 my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
49 ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
50 is($home, $homes_and_roots[1][0], 'value is expected');
51 ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
52 is($root, $homes_and_roots[1][1], 'value is expected');
53}
54
55{
56 my $home_flag = $homes_and_roots[2][0];
57 delete $ENV{CATALYST_HOME} if exists $ENV{CATALYST_HOME};
58
59 my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
60 ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
61 is($home, $homes_and_roots[2][0], 'value is expected');
62 ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
63 is($root, $homes_and_roots[2][1], 'value is expected');
64}
65
66{
67 my $home_flag = $homes_and_roots[2][0];
68 $ENV{CATALYST_HOME} = $homes_and_roots[1][0];
69
70 my $c = Catalyst::IOC::Container->new(name => 'TestAppSetupHome');
71 ok(my $home = $c->resolve(service => 'home', parameters => { home_flag => $home_flag }), 'home service returns ok');
72 is($home, $homes_and_roots[2][0], 'value is expected');
73 ok(my $root = $c->resolve(service => 'root_dir'), 'root service returns ok');
74 is($root, $homes_and_roots[2][1], 'value is expected');
75}
76
77for my $home_and_root (@homes_and_roots) {
78 for (@$home_and_root) {
79 rmdir $_;
80 }
81}
82
83done_testing;