1084f5bc8578a6c95e0a458c6d4ca095cc4a60f1
[catagits/Catalyst-Plugin-Cache.git] / t / key_regexes.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More 'no_plan';
7
8 use ok "Catalyst::Plugin::Cache";
9 use ok "Catalyst::Plugin::Cache::Choose::KeyRegexes";
10
11 use Catalyst::Plugin::Cache::Backend::Memory;
12
13 {
14     package MockApp;
15     use base qw/Catalyst::Plugin::Cache Catalyst::Plugin::Cache::Choose::KeyRegexes/;
16
17     our %config = (
18         cache => {
19             key_regexes => [
20                 qr/^foo/ => "foo_store",
21                 qr/^bar/ => "bar_store",
22             ],
23             ### as of 0.06, you must specify a backend
24             backend => { 
25                 class   => 'Catalyst::Plugin::Cache::Backend::Memory',
26             }
27         },
28     );
29     sub config { \%config }
30 }
31
32
33 MockApp->setup;
34 my $c = bless {}, "MockApp";
35
36 MockApp->register_cache_backend( default => Catalyst::Plugin::Cache::Backend::Memory->new );
37 MockApp->register_cache_backend( foo_store => Catalyst::Plugin::Cache::Backend::Memory->new );
38 MockApp->register_cache_backend( bar_store => Catalyst::Plugin::Cache::Backend::Memory->new );
39
40 is( $c->choose_cache_backend_wrapper( key => "baz" ), $c->default_cache_backend, "chose default" );
41 is( $c->choose_cache_backend_wrapper( key => "foo" ), $c->get_cache_backend("foo_store"), "chose foo" );
42 is( $c->choose_cache_backend_wrapper( key => "bar" ), $c->get_cache_backend("bar_store"), "chose bar" );
43
44 $c->cache_set( foo_laa => "laa" );
45 $c->cache_set( bar_laa => "laa" );
46 $c->cache_set( baz_laa => "laa" );
47
48 is( $c->default_cache_backend->get("baz_laa"), "laa", "non match stored in default" );
49 is( $c->default_cache_backend->get("foo_laa"), undef, "no foo key" );
50 is( $c->default_cache_backend->get("bar_laa"), undef, "no bar key" );
51
52
53 is( $c->get_cache_backend("foo_store")->get("baz_laa"), undef, "no non match in foo store" );
54 is( $c->get_cache_backend("foo_store")->get("foo_laa"), "laa", "has foo key" );
55 is( $c->get_cache_backend("foo_store")->get("bar_laa"), undef, "no bar key" );
56
57
58 is( $c->get_cache_backend("bar_store")->get("baz_laa"), undef, "no non match in bar store" );
59 is( $c->get_cache_backend("bar_store")->get("foo_laa"), undef, "no foo key" );
60 is( $c->get_cache_backend("bar_store")->get("bar_laa"), "laa", "has bar key" );
61
62