first version ready for release
[gitmo/MooseX-Attribute-ENV.git] / t / 01-basic.t
1
2 use warnings;
3 use strict;
4 use Test::More tests => 9;
5
6 ENV_ATTRIBUTES: {
7
8         local %ENV;
9
10         $ENV{test1} = '111';
11         $ENV{test2} = '222';    
12         $ENV{'444_test4'} = '444';
13         $ENV{"MooseX_Attribute_ENV_Test_Class_test5"} = 'packagetest';  
14         
15         {
16                 package MooseX::Attribute::ENV::Test::Class;
17                 
18                 use Moose;
19                 use MooseX::Attribute::ENV;
20                 
21                 has 'test1' => (
22                         traits=>[qw/ENV/],      
23                         is=>'ro',
24                 );
25
26                 has 'test1a' => (
27                         traits=>[qw/ENV/],
28                         env_key=>'test2',
29                         is=>'ro',
30                 );
31
32                 has 'test3' => (
33                         traits=>[qw/ENV/],      
34                         is=>'ro',
35                         default=>'333',
36                 );
37                 
38                 has 'test3a' => (
39                         traits=>[qw/ENV/],
40                         env_key=>'test4',
41                         is=>'ro',
42                         default=>'444',
43                 );
44                 
45                 has 'test4' => (
46                         traits=>[qw/ENV/],
47                         env_prefix=>'444',
48                         is=>'ro',
49                 );
50
51                 has 'test5' => (
52                         traits=>[qw/ENV/],
53                         env_package_prefix=>1,
54                         is=>'ro',
55                 );
56                 
57                 has 'test6' => (
58                         traits=>[qw/ENV/],
59                         env_package_prefix=>1,
60                         is=>'ro',
61                         default=>sub{
62                         return blessed shift;
63                         }
64                 );
65         }
66
67         ok( my $env = 'MooseX::Attribute::ENV::Test::Class'->new(), "Got a good object");
68         isa_ok( $env, 'MooseX::Attribute::ENV::Test::Class' );
69
70         is $env->test1, 111, "correct value";
71         is $env->test1a, 222, "correct value";
72         is $env->test3, 333, "correct value";
73         is $env->test3a, 444, "correct value";
74         is $env->test4, '444', "correct value"; 
75         is $env->test5, 'packagetest', "correct value"; 
76         is $env->test6, 'MooseX::Attribute::ENV::Test::Class', "correct value"; 
77 }
78
79
80