File: defaultAttributes.t

package info (click to toggle)
libclass-prototyped-perl 1.11-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 544 kB
  • sloc: perl: 1,448; makefile: 8
file content (53 lines) | stat: -rwxr-xr-x 1,386 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use strict;
$^W++;
use Class::Prototyped qw(:NEW_MAIN);
use Data::Dumper;
use Test;

BEGIN {
	$|++;
	plan tests => 8;
}

$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Sortkeys = 1;

my $p1 = new( a => 2, b => sub {'b'} );

ok( scalar(Class::Prototyped->reflect->_defaults),
		scalar($p1->reflect->_defaults) );

ok( scalar($p1->reflect->_defaults) ne scalar($p1->reflect->defaultAttributes) );

{
	my $temp = Data::Dumper->Dump([$p1->reflect->_defaults, $p1->reflect->_defaults]);
	ok( $temp =~ s/\$VAR1//g, 2);
}

{
	my $temp = Data::Dumper->Dump([$p1->reflect->_defaults, $p1->reflect->defaultAttributes]);
	ok( $temp =~ s/\$VAR1//g, 1);

	$temp = $p1->reflect->defaultAttributes;
	$temp->{METHOD}->{superable} = 1;
	$p1->reflect->defaultAttributes($temp);

	ok( scalar(Class::Prototyped->reflect->_defaults) ne
			scalar($p1->reflect->_defaults) );

	ok( Data::Dumper->Dump([Class::Prototyped->reflect->_defaults]),
			Data::Dumper->Dump([{ FIELD => undef, METHOD => undef, PARENT => undef }]) );

	ok( Data::Dumper->Dump([$p1->reflect->_defaults]),
			Data::Dumper->Dump([{ FIELD => undef, METHOD => {superable => 1}, PARENT => undef }]) );

	$p1->reflect->addSlot(c => sub {'c'});

	ok( Data::Dumper->Dump([[$p1->reflect->getSlots]]),
			Data::Dumper->Dump([[
					['a', 'FIELD'] => 2,
					['b', 'METHOD'] => sub { },
					['c', 'METHOD', 'superable' => 1] => sub { }
				]]) );

}