# # $Id$ use strict; use Test::More tests => 17; BEGIN { use_ok( 'Cache::Weak' ); } my $ns = "test"; my ($key, $value) = ("foo", \$ns); # create and check instance my $cache = Cache::Weak->new(); isa_ok( $cache, 'Cache::Weak', 'new()' ); # check default namespace is( $cache->namespace, &Cache::Weak::DEFAULT_NAMESPACE, 'default namespace'); # check custom namespace ok( $cache->namespace($ns), 'namespace($ns)' ); is( $cache->namespace, $ns, 'namespace() eq $ns' ); # check basic set/get methods ok( $cache->set($key, $value), 'set($key, $value)' ); is( $cache->get($key), $value, 'get($key) eq $value' ); # check object removing & exists() method $cache->set($key, $value); ok( $cache->exists($key), 'exists($key) before remove($key)'); ok( defined $cache->get($key), 'get($key) before remove($key)' ); ok( $cache->remove($key), 'remove($key)' ); ok(!defined $cache->get($key), 'get($key) after remove($key)'); ok(!$cache->exists($key), 'exists($key) after remove($key)'); # check purge $cache->set($key, $value); my $initial_size = $cache->count(); { my $new_objects = 3; my @values = 1..$new_objects; for ( my $i = 1; $i <= 3; $i++ ) { $cache->set($i, \$values[ $i - 1 ]); } is( $cache->count(), $initial_size + $new_objects, 'cache size before purge()' ); } ok( $cache->purge(), 'purge()' ); is( $cache->count(), $initial_size, 'cache size after purge()' ); # check cache clearing $cache->set($key, $value); ok( $cache->clear(), 'clear()' ); ok(!$cache->count(), 'cache size after clear()' );