Cosimo Streppone > Cache-Memcached-Mock-0.07 > Cache::Memcached::Mock

Download:
Cache-Memcached-Mock-0.07.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.07   Source  

NAME ^

Cache::Memcached::Mock - A mock class for Cache::Memcached

VERSION ^

version 0.07

SYNOPSIS ^

Supports only a subset of Cache::Memcached functionality.

    my $cache = Cache::Memcached::Mock->new();

    # You can also set the limit for the size of the values
    # Default real memcached limit is 1Mb
    $cache = Cache::Memcached::Mock->new({ size_limit => 65536 }); # bytes

    # Or the default bit width when incrementing/decrementing unsigned integers.
    $cache = Cache::Memcached::Mock->new({ bit_width => 32 });

    # Values are stored in a process global hash
    my $value = $cache->get('somekey');
    my $set_ok = $cache->set('someotherkey', 'somevalue');
    $set_ok = $cache->set('someotherkey', 'somevalue', 60);  # seconds

    my $ok = $cache->add('another_key', 'another_value');
    $ok = $cache->replace('another_key', 'another_value');

    $cache->incr('some-counter');
    $cache->decr('some-counter');
    $cache->incr('some-counter', 2);

    # new() also flushes all values
    $cache->flush_all();

    my $pairs = $cache->get_multi('key1', 'key2', '...');

DESCRIPTION ^

This class can be used to mock the real Cache::Memcached object when you don't have a memcached server running (and you don't want to run one actually), but you need the functionality to be there.

I used it in unit tests, where I had to perform several tests against a given memcached instance, to see that certain values were really created or deleted.

Instead of having a memcached instance running for every server where I need unit tests running, or using a centralized memcached daemon, I can just pass a Cache::Memcached::Mock instance wherever a Cache::Memcached one is required.

This is an example of how you would use this mock class:

    # Use the "Mock" one instead of C::MC
    my $memc = Cache::Memcached::Mock->new();

    my $business_object = My::Business->new({
        memcached_instance => $memc
    });

    $business_object->do_something_that_involves_caching();

In short, this allows you to avoid setting up a real memcached instance whenever you don't necessarily need one, for example unit testing.

NAME ^

Cache::Memcached::Mock - A mock class for Cache::Memcached

VERSION ^

version 0.06

AUTHOR ^

  Cosimo Streppone <cosimo@opera.com>
  Márcio Faustino <marciof@opera.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2010 by Opera Software ASA.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

AUTHOR ^

Cosimo Streppone <cosimo@opera.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Opera Software ASA.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: