stop using Moo as a test package
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_classdata.t
CommitLineData
76aab993 1use strict;
2use warnings;
3use Scalar::Util qw/refaddr blessed/;
46d0346d 4use Test::More tests => 37;
76aab993 5
6{
7 package ClassDataTest;
8 use Moose;
9 with 'Catalyst::ClassData';
10
11 package ClassDataTest2;
12 use Moose;
13 extends 'ClassDataTest';
14
15}
16
17 my $scalar = '100';
18 my $arrayref = [];
19 my $hashref = {};
20 my $scalarref = \$scalar;
21 my $coderef = sub { "beep" };
22
23 my $scalar2 = '200';
24 my $arrayref2 = [];
25 my $hashref2 = {};
26 my $scalarref2 = \$scalar2;
27 my $coderef2 = sub { "beep" };
28
46d0346d 29 my $scalar3 = '300';
30 my $arrayref3 = [];
31 my $hashref3 = {};
32 my $scalarref3 = \$scalar3;
33 my $coderef3 = sub { "beep" };
34
76aab993 35
36my @accessors = qw/_arrayref _hashref _scalarref _coderef _scalar/;
37ClassDataTest->mk_classdata($_) for @accessors;
38can_ok('ClassDataTest', @accessors);
39
40ClassDataTest2->mk_classdata("beep", "meep");
41is(ClassDataTest2->beep, "meep");
42
43ClassDataTest->_arrayref($arrayref);
44ClassDataTest->_hashref($hashref);
45ClassDataTest->_scalarref($scalarref);
46ClassDataTest->_coderef($coderef);
47ClassDataTest->_scalar($scalar);
48
49is(ref(ClassDataTest->_arrayref), 'ARRAY');
50is(ref(ClassDataTest->_hashref), 'HASH');
51is(ref(ClassDataTest->_scalarref), 'SCALAR');
52is(ref(ClassDataTest->_coderef), 'CODE');
53ok( !ref(ClassDataTest->_scalar) );
54is(refaddr(ClassDataTest->_arrayref), refaddr($arrayref));
55is(refaddr(ClassDataTest->_hashref), refaddr($hashref));
56is(refaddr(ClassDataTest->_scalarref), refaddr($scalarref));
57is(refaddr(ClassDataTest->_coderef), refaddr($coderef));
58is(ClassDataTest->_scalar, $scalar);
59
60
61is(ref(ClassDataTest2->_arrayref), 'ARRAY');
62is(ref(ClassDataTest2->_hashref), 'HASH');
63is(ref(ClassDataTest2->_scalarref), 'SCALAR');
64is(ref(ClassDataTest2->_coderef), 'CODE');
65ok( !ref(ClassDataTest2->_scalar) );
66is(refaddr(ClassDataTest2->_arrayref), refaddr($arrayref));
67is(refaddr(ClassDataTest2->_hashref), refaddr($hashref));
68is(refaddr(ClassDataTest2->_scalarref), refaddr($scalarref));
69is(refaddr(ClassDataTest2->_coderef), refaddr($coderef));
70is(ClassDataTest2->_scalar, $scalar);
71
72ClassDataTest2->_arrayref($arrayref2);
73ClassDataTest2->_hashref($hashref2);
74ClassDataTest2->_scalarref($scalarref2);
75ClassDataTest2->_coderef($coderef2);
76ClassDataTest2->_scalar($scalar2);
77
78is(refaddr(ClassDataTest2->_arrayref), refaddr($arrayref2));
79is(refaddr(ClassDataTest2->_hashref), refaddr($hashref2));
80is(refaddr(ClassDataTest2->_scalarref), refaddr($scalarref2));
81is(refaddr(ClassDataTest2->_coderef), refaddr($coderef2));
82is(ClassDataTest2->_scalar, $scalar2);
83
84is(refaddr(ClassDataTest->_arrayref), refaddr($arrayref));
85is(refaddr(ClassDataTest->_hashref), refaddr($hashref));
86is(refaddr(ClassDataTest->_scalarref), refaddr($scalarref));
87is(refaddr(ClassDataTest->_coderef), refaddr($coderef));
88is(ClassDataTest->_scalar, $scalar);
46d0346d 89
90ClassDataTest->_arrayref($arrayref3);
91ClassDataTest->_hashref($hashref3);
92ClassDataTest->_scalarref($scalarref3);
93ClassDataTest->_coderef($coderef3);
94ClassDataTest->_scalar($scalar3);
95
96is(refaddr(ClassDataTest->_arrayref), refaddr($arrayref3));
97is(refaddr(ClassDataTest->_hashref), refaddr($hashref3));
98is(refaddr(ClassDataTest->_scalarref), refaddr($scalarref3));
99is(refaddr(ClassDataTest->_coderef), refaddr($coderef3));
100is(ClassDataTest->_scalar, $scalar3);
81f25ce6 101
102my $i = bless {}, 'ClassDataTest';
103$i->_scalar('foo');
104