The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More 'no_plan';
use Test::Exception;

{
    package ManyStores;
    use base qw/Catalyst::Plugin::Cache/;

    sub registered_plugins {
        qw/
            Bar
            Cache
            Cache::Store::Foo
            Cache::Store::Bar
            MyApp::Plugin::Cache::Store::Moose
            Cheese
        /;
    }

    package OneStore;
    use base qw/Catalyst::Plugin::Cache/;

    sub registered_plugins {
        qw/
            Aplugin
            Cache
            Cache::Store::Foo
        /
    }

    package NoStores;
    use base qw/Catalyst::Plugin::Cache/;

    sub registered_plugins {
        qw/
            Bar
            Cache
            Lala
        /
    }
}

# store guessing

lives_ok { OneStore->guess_default_cache_store } "can guess if only one plugin";
is( OneStore->guess_default_cache_store, "Foo", "guess is right" );

dies_ok { ManyStores->guess_default_cache_store } "can't guess if many";
dies_ok { NoStores->guess_default_cache_store } "can't guess if none";