first pass at testing
[gitmo/MooseX-Antlers.git] / t / one.t
CommitLineData
a39b801f 1use strict;
2use warnings FATAL => 'all';
3use aliased 'MooseX::Antlers::EvalTracker';
4use aliased 'MooseX::Antlers::RefTracker';
5use aliased 'MooseX::Antlers::RefFilter';
6use B qw(perlstring);
7use lib 't/lib';
8use Test::More;
9
10my %attr_refs;
11my %attr_methods;
12
13{
14 require Moose;
15 my $orig = Moose->can('import');
16 no warnings 'redefine';
17 local *Moose::import = sub {
18 my $targ = caller;
19 Moose->$orig({ into => $targ });
20 my $has = $targ->can('has');
21 {
22 no strict 'refs';
23 *{"${targ}::has"} = sub {
24 $attr_refs{$_[0]} = RefTracker->trace_refs(
25 '$attributes{'.perlstring($_[0]).'}'
26 => \@_
27 );
28 my $et = EvalTracker->new->enable;
29 $has->(@_);
30 $attr_methods{$_[0]} = $et->recorded_coderefs;
31 };
32 }
33 };
34 require One;
35}
36
37ok(One->can('foo'), 'foo accessor installed');
38
39use Data::Dump::Streamer;
40
41my $orig_foo_src = Dump(One->can('foo'));
42
43# write test_class method that checks method including call
44# Class::Unload One
45# build compiled source
46# eval compiled source
47# run test_class after that as well as before unload
48
49use Data::Dumper::Concise;
50
51#warn Dumper \%attr_refs;
52#warn Dumper \%attr_methods;
53
54done_testing;