File: super-jenga.t

package info (click to toggle)
libmoo-perl 0.091011-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 476 kB
  • sloc: perl: 1,688; makefile: 4; sh: 1
file content (38 lines) | stat: -rw-r--r-- 618 bytes parent folder | download | duplicates (2)
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
use strictures 1;
use Test::More;

{
  package Tower1;

  use Mouse;

  has 'attr1' => (is => 'ro', required => 1);

  package Tower2;

  use Moo;

  extends 'Tower1';

  has 'attr2' => (is => 'ro', required => 1);

  package Tower3;

  use Moose;

  extends 'Tower2';

  has 'attr3' => (is => 'ro', required => 1);

  __PACKAGE__->meta->make_immutable;
}

foreach my $num (1..3) {
  my $class = "Tower${num}";
  my @attrs = map "attr$_", 1..$num;
  my %args = map +($_ => "${_}_value"), @attrs;
  my $obj = $class->new(%args);
  is($obj->{$_}, "${_}_value", "Attribute $_ ok for $class") for @attrs;
}

done_testing;