still failing some tests. waiting for suggestions on whether to fix old CDIretardedness
[catagits/Catalyst-Runtime.git] / t / unit_core_classdata.t
CommitLineData
76aab993 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5use Scalar::Util qw/refaddr blessed/;
6use Test::More tests => 32;
7
8{
9 package ClassDataTest;
10 use Moose;
11 with 'Catalyst::ClassData';
12
13 package ClassDataTest2;
14 use Moose;
15 extends 'ClassDataTest';
16
17}
18
19 my $scalar = '100';
20 my $arrayref = [];
21 my $hashref = {};
22 my $scalarref = \$scalar;
23 my $coderef = sub { "beep" };
24
25 my $scalar2 = '200';
26 my $arrayref2 = [];
27 my $hashref2 = {};
28 my $scalarref2 = \$scalar2;
29 my $coderef2 = sub { "beep" };
30
31
32my @accessors = qw/_arrayref _hashref _scalarref _coderef _scalar/;
33ClassDataTest->mk_classdata($_) for @accessors;
34can_ok('ClassDataTest', @accessors);
35
36ClassDataTest2->mk_classdata("beep", "meep");
37is(ClassDataTest2->beep, "meep");
38
39ClassDataTest->_arrayref($arrayref);
40ClassDataTest->_hashref($hashref);
41ClassDataTest->_scalarref($scalarref);
42ClassDataTest->_coderef($coderef);
43ClassDataTest->_scalar($scalar);
44
45is(ref(ClassDataTest->_arrayref), 'ARRAY');
46is(ref(ClassDataTest->_hashref), 'HASH');
47is(ref(ClassDataTest->_scalarref), 'SCALAR');
48is(ref(ClassDataTest->_coderef), 'CODE');
49ok( !ref(ClassDataTest->_scalar) );
50is(refaddr(ClassDataTest->_arrayref), refaddr($arrayref));
51is(refaddr(ClassDataTest->_hashref), refaddr($hashref));
52is(refaddr(ClassDataTest->_scalarref), refaddr($scalarref));
53is(refaddr(ClassDataTest->_coderef), refaddr($coderef));
54is(ClassDataTest->_scalar, $scalar);
55
56
57is(ref(ClassDataTest2->_arrayref), 'ARRAY');
58is(ref(ClassDataTest2->_hashref), 'HASH');
59is(ref(ClassDataTest2->_scalarref), 'SCALAR');
60is(ref(ClassDataTest2->_coderef), 'CODE');
61ok( !ref(ClassDataTest2->_scalar) );
62is(refaddr(ClassDataTest2->_arrayref), refaddr($arrayref));
63is(refaddr(ClassDataTest2->_hashref), refaddr($hashref));
64is(refaddr(ClassDataTest2->_scalarref), refaddr($scalarref));
65is(refaddr(ClassDataTest2->_coderef), refaddr($coderef));
66is(ClassDataTest2->_scalar, $scalar);
67
68ClassDataTest2->_arrayref($arrayref2);
69ClassDataTest2->_hashref($hashref2);
70ClassDataTest2->_scalarref($scalarref2);
71ClassDataTest2->_coderef($coderef2);
72ClassDataTest2->_scalar($scalar2);
73
74is(refaddr(ClassDataTest2->_arrayref), refaddr($arrayref2));
75is(refaddr(ClassDataTest2->_hashref), refaddr($hashref2));
76is(refaddr(ClassDataTest2->_scalarref), refaddr($scalarref2));
77is(refaddr(ClassDataTest2->_coderef), refaddr($coderef2));
78is(ClassDataTest2->_scalar, $scalar2);
79
80is(refaddr(ClassDataTest->_arrayref), refaddr($arrayref));
81is(refaddr(ClassDataTest->_hashref), refaddr($hashref));
82is(refaddr(ClassDataTest->_scalarref), refaddr($scalarref));
83is(refaddr(ClassDataTest->_coderef), refaddr($coderef));
84is(ClassDataTest->_scalar, $scalar);