Devel-Agent

 view release on metacpan or  search on metacpan

t/Devel-Agent.t  view on Meta::CPAN


use Modern::Perl;
use Test::More qw(no_plan);
use AnyEvent;
use Data::Dumper;
$Data::Dumper::Sortkeys=1;
$Data::Dumper::Indent=1;
use FindBin qw($Bin);
use Scalar::Util qw( blessed looks_like_number);
require Method::Generate::DemolishAll;
use lib $Bin;
require TestMe;
#use Carp qw(confess);
#$SIG{__DIE__}=\&confess;
our $pkg='Devel::Agent';
use Sub::Defer qw(undefer_all);
require Plack::Middleware::Devel::Agent::Plack;
use Devel::Agent::Util;
use HTTP::Request::Common;
use Plack::Test;
use AnyEvent;
use File::Spec;
use File::Temp qw(tempdir);
undefer_all();

our $dir=tempdir;


# to enable unit tests
# PERL5OPT='-d:Agent'  perl -Ilib t/Charter-IT-Agent.t

our $SET;
our $TESTS=0;
SKIP: {
  skip 'PERL5OPT="-d:Agent" is not set',303 unless $^P==35;

  my $self=DB->new( 
    save_to_stack=>1,
    ignore_calling_class_re=>[qr/^Test2::/s,qr/^Test::/],);

  $SET='STACK_TO 3';
  stack_to(3);
  sub stack_to {
    ++$TESTS;
    $self->reset;
    for(1 .. $_[0]) {
      $self->depths->[$_]={depth=>$_,order_id=>$self->next_order_id,calls=>[]};
    }
  }
  sub close_to {
    my $id=shift;
    ++$TESTS;
    $self->close_to($id,{depth=>$id,order_id=>$self->next_order_id,calls=>[]});
    if($id==1) {
      #diag Dumper($self->depths);
      is_deeply($self->trace->[$#{$self->trace}],$self->depths->[$id],$SET.' ensure we were added to the stack');
      return;
    }
    my $owner=$id -1;
    #diag Dumper($self->depths->{$owner});
    cmp_ok($self->order_id,'>=',$self->depths->[$id]->{order_id},$SET.' validate the order id');
    my $cap=$self->depths->[$owner]->{calls}->$#*;



( run in 1.821 second using v1.01-cache-2.11-cpan-364913b4093 )