first version ready for release
[gitmo/MooseX-Attribute-ENV.git] / t / 01-basic.t
diff --git a/t/01-basic.t b/t/01-basic.t
new file mode 100755 (executable)
index 0000000..32ae0bd
--- /dev/null
@@ -0,0 +1,80 @@
+
+use warnings;
+use strict;
+use Test::More tests => 9;
+
+ENV_ATTRIBUTES: {
+
+       local %ENV;
+
+       $ENV{test1} = '111';
+       $ENV{test2} = '222';    
+       $ENV{'444_test4'} = '444';
+       $ENV{"MooseX_Attribute_ENV_Test_Class_test5"} = 'packagetest';  
+       
+       {
+               package MooseX::Attribute::ENV::Test::Class;
+               
+               use Moose;
+               use MooseX::Attribute::ENV;
+               
+               has 'test1' => (
+                       traits=>[qw/ENV/],      
+                       is=>'ro',
+               );
+
+               has 'test1a' => (
+                       traits=>[qw/ENV/],
+                       env_key=>'test2',
+                       is=>'ro',
+               );
+
+               has 'test3' => (
+                       traits=>[qw/ENV/],      
+                       is=>'ro',
+                       default=>'333',
+               );
+               
+               has 'test3a' => (
+                       traits=>[qw/ENV/],
+                       env_key=>'test4',
+                       is=>'ro',
+                       default=>'444',
+               );
+               
+               has 'test4' => (
+                       traits=>[qw/ENV/],
+                       env_prefix=>'444',
+                       is=>'ro',
+               );
+
+               has 'test5' => (
+                       traits=>[qw/ENV/],
+                       env_package_prefix=>1,
+                       is=>'ro',
+               );
+               
+               has 'test6' => (
+                       traits=>[qw/ENV/],
+                       env_package_prefix=>1,
+                       is=>'ro',
+                       default=>sub{
+                       return blessed shift;
+                       }
+               );
+       }
+
+       ok( my $env = 'MooseX::Attribute::ENV::Test::Class'->new(), "Got a good object");
+       isa_ok( $env, 'MooseX::Attribute::ENV::Test::Class' );
+
+       is $env->test1, 111, "correct value";
+       is $env->test1a, 222, "correct value";
+       is $env->test3, 333, "correct value";
+       is $env->test3a, 444, "correct value";
+       is $env->test4, '444', "correct value"; 
+       is $env->test5, 'packagetest', "correct value"; 
+       is $env->test6, 'MooseX::Attribute::ENV::Test::Class', "correct value"; 
+}
+
+
+