adding better tests for utils
Stevan Little [Tue, 3 Jul 2007 21:03:48 +0000 (21:03 +0000)]
Changes
README
lib/MooseX/Storage.pm
lib/MooseX/Storage/Util.pm
t/040_basic_utils.t

diff --git a/Changes b/Changes
index f6dcbae..06e5da7 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,12 @@
 Revision history for MooseX-Storage
 
+0.04
+    * MooseX::Storage::Util
+        - made this more robust when it tries
+          to use YAML and JSON loaders and fails
+          to find one
+            - fixed tests to reflect this
+
 0.03 Wed. June 27, 2007
     * MooseX::Storage::Util
         - this is a collection of useful tools 
diff --git a/README b/README
index d8e92b9..e1ea222 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-MooseX-Storage version 0.03
+MooseX-Storage version 0.04
 
 INSTALLATION
 
index 192c6ee..bcd2761 100644 (file)
@@ -4,7 +4,7 @@ use Moose qw(confess);
 
 use MooseX::Storage::Meta::Attribute::DoNotSerialize;
 
-our $VERSION   = '0.03';
+our $VERSION   = '0.04';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub import {
index e13ea97..e0ddcb7 100644 (file)
@@ -3,7 +3,7 @@ use Moose qw(confess blessed);
 
 use MooseX::Storage::Engine ();
 
-our $VERSION   = '0.01';
+our $VERSION   = '0.02';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub peek {
@@ -32,7 +32,8 @@ sub _inflate_json {
     my ($class, $json) = @_;
     
     require JSON::Any;
-    JSON::Any->import;
+    eval { JSON::Any->import };
+    confess "Could not load JSON module because : $@" if $@; 
     
     my $data = eval { JSON::Any->jsonToObj($json) };
     if ($@) {
@@ -46,7 +47,9 @@ sub _inflate_yaml {
     my ($class, $yaml) = @_;
     
     require Best; 
-    Best->import([[ qw[YAML::Syck YAML] ]]);    
+    eval { Best->import([[ qw[YAML::Syck YAML] ]]) };
+    confess "Could not load YAML module because : $@" if $@; 
+        
     
     my $inflater = Best->which('YAML::Syck')->can('Load');
     
index 802e841..3e1690c 100644 (file)
@@ -56,19 +56,31 @@ object:
 string: foo
 };
 
-is(
-'Foo', 
-MooseX::Storage::Util->peek($packed), 
-'... got the right class name from the packed item');
+is('Foo', MooseX::Storage::Util->peek($packed), 
+   '... got the right class name from the packed item');
 
-is(
-'Foo', 
-MooseX::Storage::Util->peek($json => ('format' => 'JSON')), 
-'... got the right class name from the json item');
+SKIP: {
+    my $classname = eval { 
+        MooseX::Storage::Util->peek($json => ('format' => 'JSON')) 
+    };
+    if ($@ =~ /^Could not load JSON module because/) {
+        skip "No JSON module found", 1;
+    }
 
-is(
-'Foo', 
-MooseX::Storage::Util->peek($yaml => ('format' => 'YAML')), 
-'... got the right class name from the yaml item');
+    is('Foo', $classname, 
+       '... got the right class name from the json item');
+}
+
+SKIP: {
+    my $classname = eval { 
+        MooseX::Storage::Util->peek($yaml => ('format' => 'YAML'))
+    };
+    if ($@ =~ /^Could not load YAML module because/) {
+        skip "No YAML module found", 1;
+    }    
+    
+    is('Foo', $classname, 
+       '... got the right class name from the yaml item');
+}