add attributes for extensions and plugins from Config::Any topic/config_any_attributes
Gordon Irving [Thu, 27 Aug 2009 12:22:24 +0000 (13:22 +0100)]
lib/MooseX/SimpleConfig.pm
t/12attributes.t [new file with mode: 0644]

index e12b104..9077c38 100644 (file)
@@ -28,6 +28,26 @@ sub get_config_from_file {
     $raw_config;
 }
 
+has extensions => (
+    is => 'ro',
+    isa        => 'ArrayRef',
+    lazy_build =>1,
+);
+
+sub _build_extensions {
+  return Config::Any->extensions();
+}
+
+has plugins => (
+    is => 'ro',
+    isa => 'ArrayRef',
+    lazy_build => 1
+);
+
+sub _build_plugins {
+    return [Config::Any->plugins()] ;
+}
+
 no Moose::Role; 1;
 
 __END__
diff --git a/t/12attributes.t b/t/12attributes.t
new file mode 100644 (file)
index 0000000..2d44bfd
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+# vim: et
+
+use strict;
+use warnings;
+
+use lib 't/lib';
+use lib '../t/lib';
+
+use Test::More qw(no_plan);                      # last test to print
+use Test::Moose;
+
+use_ok('MXSimpleConfigTest');
+
+has_attribute_ok('MXSimpleConfigTest', 'extensions', 'extensions attribute is present');
+
+has_attribute_ok('MXSimpleConfigTest', 'plugins', 'plugins attribute is present');
+
+{
+   my $config_test;
+   eval { $config_test = MXSimpleConfigTest->new(req_attr => 'foo') };
+   isa_ok($config_test, "MXSimpleConfigTest", "test config created");
+   isa_ok($config_test->plugins(), 'ARRAY', 'plugins is an array');
+   isa_ok($config_test->extensions(), 'ARRAY', 'extentions is an array');
+}