Mark forgotten ::Row::id() method as indirect_sugar
[dbsrgits/DBIx-Class.git] / t / 84serialize.t
index 04e16cb..021c44e 100644 (file)
@@ -1,15 +1,18 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+
 use strict;
 use warnings;
 
 use Test::More;
 use Test::Exception;
-use lib qw(t/lib);
+
 use DBICTest;
 use Storable qw(dclone freeze nfreeze thaw);
 use Scalar::Util qw/refaddr/;
+use Carp;
 
 sub ref_ne {
-  my ($refa, $refb) = map { refaddr $_ or die "$_ is not a reference!" } @_[0,1];
+  my ($refa, $refb) = map { refaddr $_ or croak "$_ is not a reference!" } @_[0,1];
   cmp_ok (
     $refa,
       '!=',
@@ -57,8 +60,10 @@ my %stores = (
 
 );
 
-if ($ENV{DBICTEST_MEMCACHED}) {
-  if (DBIx::Class::Optional::Dependencies->req_ok_for ('test_memcached')) {
+SKIP: {
+    require DBIx::Class::Optional::Dependencies;
+    DBIx::Class::Optional::Dependencies->skip_without('test_memcached');
+
     my $memcached = Cache::Memcached->new(
       { servers => [ $ENV{DBICTEST_MEMCACHED} ] }
     );
@@ -66,25 +71,13 @@ if ($ENV{DBICTEST_MEMCACHED}) {
     my $key = 'tmp_dbic_84serialize_memcached_test';
 
     $stores{memcached} = sub {
-      $memcached->set( $key, $_[0], 60 );
+      $memcached->set( $key, $_[0], 60 )
+        or die "Unable to insert into $ENV{DBICTEST_MEMCACHED} - is server running?";
       local $DBIx::Class::ResultSourceHandle::thaw_schema = $schema;
       return $memcached->get($key);
     };
-  }
-  else {
-    SKIP: {
-      skip 'Memcached tests need ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_memcached'), 1;
-    }
-  }
-}
-else {
-  SKIP: {
-    skip 'Set $ENV{DBICTEST_MEMCACHED} to run the memcached serialization tests', 1;
-  }
 }
 
-
-
 for my $name (keys %stores) {
 
     my $store = $stores{$name};
@@ -136,17 +129,12 @@ for my $name (keys %stores) {
 
 
     # Test resultsource with cached rows
-    my $query_count;
-    $cd_rs = $cd_rs->search ({}, { cache => 1 });
-
-    my $orig_debug = $schema->storage->debug;
-    $schema->storage->debug(1);
-    $schema->storage->debugcb(sub { $query_count++ } );
+    $schema->is_executed_querycount( sub {
+      $cd_rs = $cd_rs->search ({}, { cache => 1 });
 
-    # this will hit the database once and prime the cache
-    my @cds = $cd_rs->all;
+      # this will hit the database once and prime the cache
+      my @cds = $cd_rs->all;
 
-    lives_ok {
       $copy = $store->($cd_rs);
       ref_ne($copy, $cd_rs, 'Cached resultset cloned');
       is_deeply (
@@ -156,12 +144,7 @@ for my $name (keys %stores) {
       );
 
       is ($copy->count, $cd_rs->count, 'Cached count identical');
-    } "serialize cached resultset lives: $name";
-
-    is ($query_count, 1, 'Only one db query fired');
-
-    $schema->storage->debug($orig_debug);
-    $schema->storage->debugcb(undef);
+    }, 1, 'Only one db query fired');
 }
 
 # test schema-less detached thaw