Hello community,

here is the log from the commit of package perl-Mojolicious-Plugin-CHI for 
openSUSE:Factory checked in at 2014-04-25 16:11:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious-Plugin-CHI (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mojolicious-Plugin-CHI.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mojolicious-Plugin-CHI"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Mojolicious-Plugin-CHI/perl-Mojolicious-Plugin-CHI.changes
  2014-04-02 17:25:17.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Mojolicious-Plugin-CHI.new/perl-Mojolicious-Plugin-CHI.changes
     2014-04-25 16:11:44.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Apr 21 06:30:54 UTC 2014 - m...@suse.com
+
+- Update to version 0.09
+  * Bugfix test suite.
+
+-------------------------------------------------------------------
+Mon Apr 21 06:30:16 UTC 2014 - m...@suse.com
+
+- Update to version 0.08
+  * Logging now defaults to application log.
+  * Update requirements.
+  *    Added commands.
+
+-------------------------------------------------------------------

Old:
----
  Mojolicious-Plugin-CHI-0.07.tar.gz

New:
----
  Mojolicious-Plugin-CHI-0.09.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Mojolicious-Plugin-CHI.spec ++++++
--- /var/tmp/diff_new_pack.3gVFSR/_old  2014-04-25 16:11:45.000000000 +0200
+++ /var/tmp/diff_new_pack.3gVFSR/_new  2014-04-25 16:11:45.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Mojolicious-Plugin-CHI
-Version:        0.07
+Version:        0.09
 Release:        0
 %define cpan_name Mojolicious-Plugin-CHI
 Summary:        Use CHI caches in Mojolicious
@@ -30,10 +30,11 @@
 BuildRequires:  perl
 BuildRequires:  perl-macros
 BuildRequires:  perl(CHI)
-BuildRequires:  perl(Mojolicious) >= 3.43
+BuildRequires:  perl(Mojolicious) >= 4.77
 BuildRequires:  perl(Test::More)
+BuildRequires:  perl(Test::Output) >= 1.0
 Requires:       perl(CHI)
-Requires:       perl(Mojolicious) >= 3.43
+Requires:       perl(Mojolicious) >= 4.77
 %{perl_requires}
 
 %description

++++++ Mojolicious-Plugin-CHI-0.07.tar.gz -> Mojolicious-Plugin-CHI-0.09.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/Changes 
new/Mojolicious-Plugin-CHI-0.09/Changes
--- old/Mojolicious-Plugin-CHI-0.07/Changes     2014-04-01 17:37:46.000000000 
+0200
+++ new/Mojolicious-Plugin-CHI-0.09/Changes     2014-04-20 20:27:56.000000000 
+0200
@@ -1,3 +1,11 @@
+0.09 2014-04-20
+        - Bugfix test suite.
+
+0.08 2014-04-17
+        - Logging now defaults to application log.
+       - Update requirements.
+       - Added commands.
+
 0.07 2014-04-01
         - Update year.
        - Documentation tweaks on CHI.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/MANIFEST 
new/Mojolicious-Plugin-CHI-0.09/MANIFEST
--- old/Mojolicious-Plugin-CHI-0.07/MANIFEST    2014-04-01 17:39:15.000000000 
+0200
+++ new/Mojolicious-Plugin-CHI-0.09/MANIFEST    2014-04-20 20:31:41.000000000 
+0200
@@ -1,6 +1,9 @@
 lib/Mojolicious/Plugin/CHI.pm
+lib/Mojolicious/Plugin/CHI/chi.pm
 t/CHI.t
 t/CHI-File.t
+t/CHI-Log.t
+t/CHI-Command.t
 t/CHI-NoIOLoop.t
 Changes
 MANIFEST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/META.json 
new/Mojolicious-Plugin-CHI-0.09/META.json
--- old/Mojolicious-Plugin-CHI-0.07/META.json   2014-04-01 17:39:15.000000000 
+0200
+++ new/Mojolicious-Plugin-CHI-0.09/META.json   2014-04-20 20:31:41.000000000 
+0200
@@ -22,7 +22,8 @@
    "prereqs" : {
       "build" : {
          "requires" : {
-            "Test::More" : "0"
+            "Test::More" : "0",
+            "Test::Output" : "1"
          }
       },
       "configure" : {
@@ -33,7 +34,7 @@
       "runtime" : {
          "requires" : {
             "CHI" : "0",
-            "Mojolicious" : "3.43",
+            "Mojolicious" : "4.77",
             "perl" : "5.010001"
          }
       }
@@ -47,5 +48,5 @@
          "url" : "https://github.com/Akron/Mojolicious-Plugin-CHI";
       }
    },
-   "version" : "0.07"
+   "version" : "0.09"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/META.yml 
new/Mojolicious-Plugin-CHI-0.09/META.yml
--- old/Mojolicious-Plugin-CHI-0.07/META.yml    2014-04-01 17:39:15.000000000 
+0200
+++ new/Mojolicious-Plugin-CHI-0.09/META.yml    2014-04-20 20:31:41.000000000 
+0200
@@ -4,6 +4,7 @@
   - 'Nils Diewald'
 build_requires:
   Test::More: '0'
+  Test::Output: '1'
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
@@ -19,9 +20,9 @@
     - inc
 requires:
   CHI: '0'
-  Mojolicious: '3.43'
+  Mojolicious: '4.77'
   perl: '5.010001'
 resources:
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/Akron/Mojolicious-Plugin-CHI
-version: '0.07'
+version: '0.09'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/Makefile.PL 
new/Mojolicious-Plugin-CHI-0.09/Makefile.PL
--- old/Mojolicious-Plugin-CHI-0.07/Makefile.PL 2014-03-30 15:57:59.000000000 
+0200
+++ new/Mojolicious-Plugin-CHI-0.09/Makefile.PL 2014-04-17 19:37:13.000000000 
+0200
@@ -10,10 +10,11 @@
   ABSTRACT     => 'Use CHI Caches in Mojolicious',
   AUTHOR       => 'Nils Diewald',
   BUILD_REQUIRES => {
-    'Test::More' => 0
+    'Test::More' => 0,
+    'Test::Output' => 1.0
   },
   PREREQ_PM => {
-    'Mojolicious' => 3.43,
+    'Mojolicious' => 4.77,
     'CHI'         => 0
   },
   LICENSE      => 'artistic_2',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-Plugin-CHI-0.07/lib/Mojolicious/Plugin/CHI/chi.pm 
new/Mojolicious-Plugin-CHI-0.09/lib/Mojolicious/Plugin/CHI/chi.pm
--- old/Mojolicious-Plugin-CHI-0.07/lib/Mojolicious/Plugin/CHI/chi.pm   
1970-01-01 01:00:00.000000000 +0100
+++ new/Mojolicious-Plugin-CHI-0.09/lib/Mojolicious/Plugin/CHI/chi.pm   
2014-04-17 17:39:45.000000000 +0200
@@ -0,0 +1,205 @@
+package Mojolicious::Plugin::CHI::chi;
+use Mojo::Base 'Mojolicious::Command';
+use Mojo::Util 'tablify';
+
+use Getopt::Long qw/GetOptions :config no_auto_abbrev no_ignore_case/;
+
+has description => 'Interact with CHI caches.';
+has usage       => sub { shift->extract_usage };
+
+# Run chi
+sub run {
+  my $self = shift;
+
+  my $command = shift;
+
+  print $self->usage and return unless $command;
+
+  # Get the application
+  my $app = $self->app;
+  my $log = $app->log;
+
+  # List all associated caches
+  if ($command eq 'list') {
+    my $caches = $app->chi_handles;
+    my @list;
+    foreach (sort { lc($a) cmp lc($b) } keys %$caches) {
+      push(@list, [$_, ($caches->{$_}->short_driver_name || '[UNKNOWN]')]);
+    };
+    print tablify \@list;
+    return 1;
+  }
+
+  # Purge or clear a cache
+  elsif ($command eq 'purge' || $command eq 'clear') {
+    my $cache = shift || 'default';
+
+    my $chi = $app->chi($cache);
+
+    # Do not modify non-persistant in-process caches!
+    if ($chi->short_driver_name =~ /^(?:Raw)?Memory$/) {
+      $log->warn("You are trying to $command a ".
+                  $chi->short_driver_name .
+                    '-Cache');
+    };
+
+    $chi->$command();
+
+    # Purge or clear cache
+    print qq{Cache "$cache" was } . $command .
+      ($command eq 'clear' ? 'ed' : 'd') . ".\n\n";
+
+    return 1;
+  }
+
+  # Remove or expire a key
+  elsif ($command eq 'remove' || $command eq 'expire') {
+    my $key   = pop(@_);
+    my $cache = shift || 'default';
+
+    if ($key) {
+
+      my $chi = $app->chi($cache);
+
+      # Do not modify non-persistant in-process caches!
+      if ($chi->short_driver_name =~ /^(?:Raw)?Memory$/) {
+       $log->warn("You are trying to $command " .
+                    'a key from a '.
+                      $chi->short_driver_name .
+                        '-Cache');
+      };
+
+      # Remove or expire key
+      if ($chi->$command($key)) {
+       print qq{Key "$key" from cache "$cache" was } . $command . "d.\n\n";
+      }
+
+      # Not successful
+      else {
+       print 'Unable to ' . $command .
+         qq{ key "$key" from cache "$cache".\n\n};
+      };
+
+      return 1;
+    };
+  };
+
+  # Unknown command
+  print $self->usage and return;
+};
+
+
+1;
+
+
+__END__
+
+=pod
+
+=encoding utf8
+
+=head1 NAME
+
+Mojolicious::Plugin::CHI::chi - Interact with CHI caches
+
+
+=head1 SYNOPSIS
+
+  usage: perl app.pl chi <command> [cache] [key]
+
+    perl app.pl chi list
+    perl app.pl chi purge
+    perl app.pl chi clear mycache
+    perl app.pl chi expire mykey
+    perl app.pl chi remove mycache mykey
+
+  Interact with CHI caches associated with your application.
+  Valid commands include:
+
+    list
+      List all chi caches associated with your application.
+
+    purge [cache]
+      Remove all expired entries from the cache namespace.
+
+    clear [cache]
+      Remove all entries from the cache namespace.
+
+    expire [cache] [key]
+      Set the expiration date of a key to the past.
+      This does not necessarily delete the data.
+
+    remove [cache] [key]
+      Remove a key from the cache
+
+  "purge" and "expire" expect a cache namespace as their only argument.
+  If no cache namespace is given, the default cache namespace is assumed.
+
+  "expire" and "remove" expect a cache namespace and a key name as their
+  arguments. If no cache namespace is given, the default cache
+  namespace is assumed.
+
+
+=head1 DESCRIPTION
+
+L<Mojolicious::Plugin::CHI::chi> helps you to interact with
+caches associated with L<Mojolicious::Plugin::CHI>.
+
+
+=head1 ATTRIBUTES
+
+L<Mojolicious::Plugin::CHI::chi> inherits all attributes
+from L<Mojolicious::Command> and implements the following new ones.
+
+
+=head2 description
+
+  my $description = $chi->description;
+  $chi = $chi->description('Foo!');
+
+Short description of this command, used for the command list.
+
+
+=head2 usage
+
+  my $usage = $chi->usage;
+  $chi = $chi->usage('Foo!');
+
+Usage information for this command, used for the help screen.
+
+
+=head1 METHODS
+
+L<Mojolicious::Plugin::CHI::chi> inherits all methods from
+L<Mojolicious::Command> and implements the following new ones.
+
+
+=head2 run
+
+  $chi->run;
+
+Run this command.
+
+
+=head1 DEPENDENCIES
+
+L<Mojolicious>,
+L<CHI>.
+
+
+=head1 AVAILABILITY
+
+  https://github.com/Akron/Mojolicious-Plugin-CHI
+
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2013-2014, L<Nils Diewald||http://nils-diewald.de>.
+
+This program is free software, you can redistribute it
+and/or modify it under the same terms as Perl.
+
+The documentation is based on L<Mojolicious::Command::eval>,
+written by Sebastian Riedel.
+
+=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-Plugin-CHI-0.07/lib/Mojolicious/Plugin/CHI.pm 
new/Mojolicious-Plugin-CHI-0.09/lib/Mojolicious/Plugin/CHI.pm
--- old/Mojolicious-Plugin-CHI-0.07/lib/Mojolicious/Plugin/CHI.pm       
2014-04-01 17:32:06.000000000 +0200
+++ new/Mojolicious-Plugin-CHI-0.09/lib/Mojolicious/Plugin/CHI.pm       
2014-04-20 20:23:47.000000000 +0200
@@ -1,8 +1,9 @@
 package Mojolicious::Plugin::CHI;
 use Mojo::Base 'Mojolicious::Plugin';
+use Scalar::Util 'weaken';
 use CHI;
 
-our $VERSION = '0.07';
+our $VERSION = '0.09';
 
 # Register Plugin
 sub register {
@@ -14,18 +15,41 @@
   };
 
   # Hash of cache handles
-  my $caches = {};
+  my $caches;
+
+  # Add 'chi_handles' attribute
+  # Necessary for multiple cache registrations
+  unless ($mojo->can('chi_handles')) {
+    $mojo->attr(
+      chi_handles => sub {
+       return ($caches //= {});
+      }
+    );
+  }
+
+  # Get caches from application
+  else {
+    $caches = $mojo->chi_handles;
+  };
+
 
   # Support namespaces
   my $ns = delete $param->{namespaces} // 1;
 
+  # Create log callback for CHI Logging
+  my $log = $mojo->log;
+  weaken $log;
+  my $log_ref = sub {
+    $log->warn( shift ) if defined $log;
+  };
+
   # Loop through all caches
   foreach my $name (keys %$param) {
     my $cache_param = $param->{$name};
 
     # Already exists
     if (exists $caches->{$name}) {
-      $mojo->log->warn("Multiple attempts to establish cache '$name'");
+      $mojo->log->warn(qq{Multiple attempts to establish cache "$name"});
       next;
     };
 
@@ -35,17 +59,25 @@
     };
 
     # Get CHI handle
-    my $cache = CHI->new( %$cache_param );
+    my $cache = CHI->new(
+
+      # Set logging routines
+      on_get_error => $log_ref,
+      on_set_error => $log_ref,
+
+      %$cache_param
+    );
 
     # No succesful creation
-    unless ($cache) {
-      $mojo->log->warn("Unable to create cache handle '$name'");
-    };
+    $mojo->log->warn(qq{Unable to create cache handle "$name"}) unless $cache;
 
     # Store CHI handle
     $caches->{$name} = $cache;
   };
 
+  # Add 'chi' command
+  push @{$mojo->commands->namespaces}, __PACKAGE__;
+
 
   # Add 'chi' helper
   $mojo->helper(
@@ -56,7 +88,7 @@
       my $cache = $caches->{$name};
 
       # Cache unknown
-      $mojo->log->warn("Unknown cache handle '$name'") unless $cache;
+      $c->app->log->warn(qq{Unknown cache handle "$name"}) unless $cache;
 
       # Return cache
       return $cache;
@@ -149,14 +181,15 @@
 Called when registering the plugin.
 On creation, the plugin accepts a hash of cache names
 associated with L<CHI> objects.
-
 All cache handles are qualified L<CHI> namespaces.
 You can omit this mapping by passing a C<namespaces>
 parameter with a C<false> value.
-
 The handles have to be unique, i.e.
 you can't have multiple different C<default> caches in mounted
 applications using L<Mojolicious::Plugin::Mount>.
+Logging defaults to the application log, but can be
+overridden using L<on_get_error|CHI/CONSTRUCTOR> and
+L<on_set_error|CHI/CONSTRUCTOR>.
 
 All parameters can be set either on registration or
 as part of the configuration file with the key C<CHI>.
@@ -177,6 +210,51 @@
 C<default> is assumed.
 
 
+=head1 COMMANDS
+
+The following commands are available
+when the plugin is registered.
+
+=head2 chi list
+
+  perl app.pl chi list
+
+List all CHI caches associated with your application.
+
+
+=head2 chi purge
+
+  perl app.pl chi purge mycache
+
+Remove all expired entries from the cache namespace.
+
+
+=head2 chi clear
+
+  perl app.pl chi clear mycache
+
+Remove all entries from the cache namespace.
+
+
+=head2 chi expire
+
+  perl app.pl chi expire mykey
+  perl app.pl chi expire mycache mykey
+
+Set the expiration date of a key to the past.
+This does not necessarily delete the data,
+but makes it unavailable using C<get>.
+
+
+=head2 chi remove
+
+  perl app.pl chi remove mykey
+  perl app.pl chi remove mycache mykey
+
+Remove a key from the cache.
+
+
+
 =head1 DEPENDENCIES
 
 L<Mojolicious>,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/t/CHI-Command.t 
new/Mojolicious-Plugin-CHI-0.09/t/CHI-Command.t
--- old/Mojolicious-Plugin-CHI-0.07/t/CHI-Command.t     1970-01-01 
01:00:00.000000000 +0100
+++ new/Mojolicious-Plugin-CHI-0.09/t/CHI-Command.t     2014-04-18 
15:03:26.000000000 +0200
@@ -0,0 +1,208 @@
+#!/usr/bin/env perl
+use Mojolicious::Lite;
+use Test::More;
+use Test::Mojo;
+use Test::Output;
+use File::Temp qw/:POSIX tempdir/;
+
+use lib 'lib';
+use lib '../lib';
+
+use_ok 'Mojolicious::Plugin::CHI';
+
+my $t = Test::Mojo->new;
+my $app = $t->app;
+
+my $hash1 = {};
+my $hash2 = {};
+
+$app->plugin(Config => {
+  default => {
+    CHI => {
+      first => {
+        driver => 'Memory',
+       datastore => $hash1
+      },
+      MySecondCache => {
+        driver => 'Memory',
+       datastore => $hash2
+      }
+    }
+  }
+});
+
+$app->plugin('CHI');
+
+{
+  no warnings;
+  $Time::Duration::MILLISECOND = 1;
+};
+
+use_ok('Mojolicious::Plugin::CHI::chi');
+
+my $chi = Mojolicious::Plugin::CHI::chi->new;
+$chi->app($app);
+
+is($chi->description, "Interact with CHI caches.", 'Description line');
+
+stdout_like(
+  sub { $chi->run },
+  qr/perl app\.pl chi clear mycache/,
+  'Show option list'
+);
+
+my $usage = $chi->usage;
+
+stdout_is(
+  sub { $chi->run },
+  $usage,
+  'Show option list'
+);
+
+stdout_like(
+  sub { $chi->run('list') },
+  qr/first\s+Memory\s+MySecondCache\s+Memory/,
+  'Show driver list'
+);
+
+my $path = tempdir(CLEANUP => 1);
+$app->plugin(CHI => {
+  MyFlatFile => {
+    driver => 'File',
+    root_dir => $path,
+    # This may be a mysterious CHI bug
+    max_key_length => 200
+  }
+});
+
+stdout_like(
+  sub { $chi->run('list') },
+  qr/first\s+Memory\s+MyFlatFile\s+File\s+MySecondCache\s+Memory/,
+  'Show driver list'
+);
+
+my $flat_file = $app->chi('MyFlatFile');
+ok($flat_file->set(key_1 => 'value_1', { expires_in => '5m' }), 'Set key');
+is($flat_file->get('key_1'), 'value_1', 'Get key');
+ok($flat_file->set(key_2 => 'value_2' => { expires_in => 0.1 }), 'Set key');
+
+select(undef, undef, undef, 0.2);
+
+ok(!$flat_file->get('key_2'), 'Get key impossible');
+ok($flat_file->get_object('key_2')->is_expired, 'Key is expired');
+
+stdout_is(
+  sub { $chi->run('purge', 'MyFlatFile') },
+  "Cache \"MyFlatFile\" was purged.\n\n",
+  'Purge cache'
+);
+
+ok(!$flat_file->get_object('key_2'), 'Key is removed');
+is($flat_file->get('key_1'), 'value_1', 'Get key');
+
+stdout_is(
+  sub { $chi->run('clear', 'MyFlatFile') },
+  "Cache \"MyFlatFile\" was cleared.\n\n",
+  'Clear cache'
+);
+
+ok(!$flat_file->get_object('key_1'), 'Key is removed');
+
+ok($flat_file->set(key_3 => 'value_3'), 'Set key');
+ok($flat_file->set(key_4 => 'value_4'), 'Set key');
+is($flat_file->get('key_3'), 'value_3', 'Get key');
+is($flat_file->get('key_4'), 'value_4', 'Get key');
+
+stdout_is(
+  sub { $chi->run('remove', 'MyFlatFile', 'key_3') },
+  "Key \"key_3\" from cache \"MyFlatFile\" was removed.\n\n",
+  'Remove key'
+);
+ok(!$flat_file->get('key_3'), 'Get key');
+
+is($flat_file->get('key_4'), 'value_4', 'Get key');
+
+stdout_is(
+  sub { $chi->run('expire', 'MyFlatFile', 'key_4') },
+  "Key \"key_4\" from cache \"MyFlatFile\" was expired.\n\n",
+  'Expire key'
+);
+
+ok(!$flat_file->get('key_4'), 'Unable to get key');
+
+ok($flat_file->get_object('key_4')->is_expired, 'Key is expired');
+
+stdout_is(
+  sub { $chi->run('remove', 'MyFlatFile', 'key_3') },
+  "Unable to remove key \"key_3\" from cache \"MyFlatFile\".\n\n",
+  'Expire key'
+);
+
+# Again with default
+
+$path = tempdir(CLEANUP => 1);
+$app->plugin(CHI => {
+  default => {
+    driver => 'File',
+    root_dir => $path
+  }
+});
+
+my $cache = $app->chi;
+ok($cache->set(key_1 => 'value_1', { expires_in => '5m' }), 'Set key');
+is($cache->get('key_1'), 'value_1', 'Get key');
+ok($cache->set(key_2 => 'value_2' => { expires_in => 0.1 }), 'Set key');
+
+select(undef, undef, undef, 0.2);
+
+ok(!$cache->get('key_2'), 'Get key impossible');
+ok($cache->get_object('key_2')->is_expired, 'Key is expired');
+
+stdout_is(
+  sub { $chi->run('purge') },
+  qq{Cache "default" was purged.\n\n},
+  'Purge cache'
+);
+
+ok(!$cache->get_object('key_2'), 'Key is removed');
+is($cache->get('key_1'), 'value_1', 'Get key');
+
+stdout_is(
+  sub { $chi->run('clear') },
+  qq{Cache "default" was cleared.\n\n},
+  'Clear cache'
+);
+
+ok(!$cache->get_object('key_1'), 'Key is removed');
+
+ok($cache->set(key_3 => 'value_3'), 'Set key');
+ok($cache->set(key_4 => 'value_4'), 'Set key');
+is($cache->get('key_3'), 'value_3', 'Get key');
+is($cache->get('key_4'), 'value_4', 'Get key');
+
+stdout_is(
+  sub { $chi->run('remove', 'key_3') },
+  qq{Key "key_3" from cache "default" was removed.\n\n},
+  'Remove key'
+);
+ok(!$cache->get('key_3'), 'Get key');
+
+is($cache->get('key_4'), 'value_4', 'Get key');
+
+stdout_is(
+  sub { $chi->run('expire', 'key_4') },
+  qq{Key "key_4" from cache "default" was expired.\n\n},
+  'Expire key'
+);
+
+ok(!$cache->get('key_4'), 'Unable to get key');
+
+ok($cache->get_object('key_4')->is_expired, 'Key is expired');
+
+stdout_is(
+  sub { $chi->run('remove', 'key_3') },
+  qq{Unable to remove key "key_3" from cache "default".\n\n},
+  'Expire key'
+);
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/t/CHI-File.t 
new/Mojolicious-Plugin-CHI-0.09/t/CHI-File.t
--- old/Mojolicious-Plugin-CHI-0.07/t/CHI-File.t        2014-04-01 
17:33:55.000000000 +0200
+++ new/Mojolicious-Plugin-CHI-0.09/t/CHI-File.t        2014-04-17 
15:04:09.000000000 +0200
@@ -36,8 +36,7 @@
 my @test = readdir(D);
 closedir(D);
 
-ok('MyCache2' ~~ \@test, 'Namespace option valid');
-
+ok(join(',', @test) =~ m/MyCache2/, 'Namespace option valid');
 
 # Test with new namespace default
 
@@ -50,7 +49,7 @@
 $path = tempdir(CLEANUP => 1);
 
 $app->plugin(CHI => {
-  MyCache2 => {
+  MyCache3 => {
     driver => 'File',
     root_dir => $path
   }
@@ -58,7 +57,7 @@
 
 Mojo::IOLoop->start;
 
-$my_cache = $c->chi('MyCache2');
+$my_cache = $c->chi('MyCache3');
 ok($my_cache, 'CHI handle');
 ok($my_cache->set(key_1 => 'Wert 1'), 'Wert 1');
 is($my_cache->get('key_1'), 'Wert 1', 'Wert 1');
@@ -73,7 +72,7 @@
   fail('Unable to read cache dir');
 };
 
-ok('MyCache2' ~~ \@test, 'Namespace option valid');
+ok(join(',', @test) =~ m/MyCache3/, 'Namespace option valid');
 
 # Test with off namespace
 
@@ -86,7 +85,7 @@
 $path = tempdir(CLEANUP => 1);
 
 $app->plugin(CHI => {
-  MyCache2 => {
+  MyCache4 => {
     driver => 'File',
     root_dir => $path
   },
@@ -95,7 +94,7 @@
 
 Mojo::IOLoop->start;
 
-$my_cache = $c->chi('MyCache2');
+$my_cache = $c->chi('MyCache4');
 ok($my_cache, 'CHI handle');
 ok($my_cache->set(key_1 => 'Wert 1'), 'Wert 1');
 is($my_cache->get('key_1'), 'Wert 1', 'Wert 1');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-Plugin-CHI-0.07/t/CHI-Log.t 
new/Mojolicious-Plugin-CHI-0.09/t/CHI-Log.t
--- old/Mojolicious-Plugin-CHI-0.07/t/CHI-Log.t 1970-01-01 01:00:00.000000000 
+0100
+++ new/Mojolicious-Plugin-CHI-0.09/t/CHI-Log.t 2014-04-17 14:40:17.000000000 
+0200
@@ -0,0 +1,70 @@
+#!/usr/bin/env perl
+use Mojolicious::Lite;
+use Test::More;
+use Test::Mojo;
+use File::Temp qw/:POSIX tempdir/;
+use File::Path qw/remove_tree/;
+
+use lib 'lib';
+use lib '../lib';
+
+use_ok 'Mojolicious::Plugin::CHI';
+
+my $t = Test::Mojo->new;
+my $app = $t->app;
+
+my $c = Mojolicious::Controller->new;
+$c->app($app);
+
+my $path = tempdir(CLEANUP => 1);
+
+$app->plugin(CHI => {
+  default => {
+    driver => 'File',
+    root_dir => $path
+  }
+});
+
+Mojo::IOLoop->start;
+
+my $string = '';
+$app->log->on(
+  message => sub {
+    shift;
+    $string .= join '---', @_;
+  });
+
+$app->log->debug('test');
+is($string, 'debug---test', 'Check log');
+
+ok($c->chi->set('key_1' => 'value_1'), 'Set key');
+is($c->chi->get('key_1'), 'value_1', 'Get key');
+
+opendir(D, $path);
+my @test = readdir(D);
+closedir(D);
+
+ok(join(',', @test) =~ m/Default/, 'Namespace option valid');
+
+remove_tree($path);
+
+ok(!-d $path, 'Directory does not exist');
+
+# Cache is automatically recreated
+ok($c->chi->set('key_2' => 'value_2'), 'Set key');
+is($c->chi->get('key_2'), 'value_2', 'Get key');
+
+ok(-d $path, 'Directory does not exist');
+
+remove_tree($path . '/Default');
+
+ok(open(my $f, '>' . $path . '/Default'), 'Touch file');
+
+# Cache is automatically recreated
+$string = '';
+ok($c->chi->set('key_3' => 'value_3'), 'Set key');
+like($string, qr/^warn---error during cache set/, 'Set error log');
+
+ok(!$c->chi->get('key_3'), 'Get key');
+
+done_testing;

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to