+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,
'!=',
);
-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} ] }
);
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};
# 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 (
);
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