1package Test::NoWarnings::Warning;
2
3use 5.006;
4use strict;
5use warnings;
6use Carp ();
7
8use vars qw{$VERSION};
9BEGIN {
10	$VERSION = '1.01';
11}
12
13my $STACKTRACE = eval "require Devel::StackTrace" || 0;
14
15sub new {
16	my $class = shift;
17	bless { @_ }, $class;
18}
19
20sub getTrace {
21	my $self = shift;
22	return $self->{Trace};
23}
24
25sub fillTrace {
26	my $self = shift;
27	$self->{Trace} = Devel::StackTrace->new(
28		ignore_class => [__PACKAGE__, @_],
29	) if $STACKTRACE;
30}
31
32sub getCarp {
33	$_[0]->{Carp};
34}
35
36sub fillCarp {
37	my $self = shift;
38	my $msg  = shift;
39	$Carp::Internal{ __PACKAGE__ . "" }++;
40	local $Carp::CarpLevel = $Carp::CarpLevel + 1;
41	$self->{Carp} = Carp::longmess($msg);
42	$Carp::Internal{ __PACKAGE__ . "" }--;
43}
44
45sub getMessage {
46	$_[0]->{Message};
47}
48
49sub setMessage {
50	$_[0]->{Message} = $_[1];
51}
52
53sub fillTest {
54	my $self           = shift;
55	my $builder        = shift;
56	my $prev_test      = $builder->current_test;
57	$self->{Test}      = $prev_test;
58	my @tests          = $builder->details;
59	my $prev_test_name = $prev_test ? $tests[$prev_test - 1]->{name} : "";
60	$self->{TestName}  =  $prev_test_name;
61}
62
63sub getTest {
64	$_[0]->{Test};
65}
66
67sub getTestName {
68	$_[0]->{TestName};
69}
70
71sub toString {
72	my $self = shift;
73	return <<EOM;
74	Previous test $self->{Test} '$self->{TestName}'
75	$self->{Carp}
76EOM
77}
78
791;
80