DBIx-Class-QueryLog-Conditional

 view release on metacpan or  search on metacpan

t/basic.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;
use Test::Fatal;
use Test::Deep;

use aliased 'DBIx::Class::QueryLog::Conditional';

subtest instantiation => sub {
   ok(
      Conditional->new(logger => ValidLogger->new ),
      'valid logger'
   );
   ok(
      exception { Conditional->new(logger => InValidLogger->new ) },
      'invalid logger',
   );
};

subtest 'vanilla log' => sub {
   my $a = ValidLogger->new;
   my $tee = Conditional->new( logger => $a );

   $tee->query_start('foo');
   $tee->query_end('foo');

   cmp_deeply($a->_data,
      [ ['query_start', 'foo'], ['query_end', 'foo'] ],
      'messages passed through correctly',
   );

   $a->reset_data;

   $tee->enabled(0);

   $tee->query_start('foo');
   $tee->query_end('foo');

   cmp_deeply($a->_data,
      [],
      'disabling logger works',
   );

};

subtest 'custom log' => sub {
   my $a = ValidLogger->new;
   my $b = 1;
   my $tee = Conditional->new(
      logger => $a,
      enabled_method => sub { $b },
   );

   $tee->query_start('foo');
   $tee->query_end('foo');

   cmp_deeply($a->_data,
      [ ['query_start', 'foo'], ['query_end', 'foo'] ],
      'messages passed through correctly',
   );

   $a->reset_data;

   $b = 0;



( run in 0.850 second using v1.01-cache-2.11-cpan-54e63673c56 )