Add the following packages libalgorithm-diff-perl libspiffy-perl libtext-diff-perl...
[pkg-perl] / deb-src / libspiffy-perl / libspiffy-perl-0.30 / t / field3.t
1 use lib 't', 'lib';
2 use strict;
3 use warnings;
4
5 package Foo;
6 use Spiffy -Base;
7 my $test1 = field test1 => [];
8 my $test2 = field test2 => {};
9 my $test3 = field test3 => [1..4];
10 my $test4 = field test4 => {1..4};
11 my $test5 = field test5 => -weaken;
12 my $test6 = field test6 => -init => '$self->setup(@_)';
13 my $test7 = field test7 => -weak => -init => '$self->setup(@_)';
14
15 package main;
16 use Test::More tests => 7;
17
18 my @expected = map { s/\r//g; $_ } split /\.\.\.\r?\n/, join '', <DATA>;
19
20 my $i = 1;
21 for my $expected (@expected) {
22     is(eval '$test' . $i++, $expected);    
23 }
24
25 __DATA__
26 sub {
27   $_[0]->{test1} = []
28     unless exists $_[0]->{test1};
29   return $_[0]->{test1} unless $#_ > 0;
30   $_[0]->{test1} = $_[1];
31   return $_[0]->{test1};
32 }
33 ...
34 sub {
35   $_[0]->{test2} = {}
36     unless exists $_[0]->{test2};
37   return $_[0]->{test2} unless $#_ > 0;
38   $_[0]->{test2} = $_[1];
39   return $_[0]->{test2};
40 }
41 ...
42 sub {
43   $_[0]->{test3} = [
44           1,
45           2,
46           3,
47           4
48         ]
49
50     unless exists $_[0]->{test3};
51   return $_[0]->{test3} unless $#_ > 0;
52   $_[0]->{test3} = $_[1];
53   return $_[0]->{test3};
54 }
55 ...
56 sub {
57   $_[0]->{test4} = {
58           '1' => 2,
59           '3' => 4
60         }
61
62     unless exists $_[0]->{test4};
63   return $_[0]->{test4} unless $#_ > 0;
64   $_[0]->{test4} = $_[1];
65   return $_[0]->{test4};
66 }
67 ...
68 sub {
69   $_[0]->{test5} = '-weaken'
70
71     unless exists $_[0]->{test5};
72   return $_[0]->{test5} unless $#_ > 0;
73   $_[0]->{test5} = $_[1];
74   return $_[0]->{test5};
75 }
76 ...
77 sub {
78   return $_[0]->{test6} = do { my $self = $_[0]; $self->setup(@_) }
79     unless $#_ > 0 or defined $_[0]->{test6};
80   return $_[0]->{test6} unless $#_ > 0;
81   $_[0]->{test6} = $_[1];
82   return $_[0]->{test6};
83 }
84 ...
85 sub {
86   return do {
87     $_[0]->{test7} = do { my $self = $_[0]; $self->setup(@_) };
88     Scalar::Util::weaken($_[0]->{test7}) if ref $_[0]->{test7};
89     $_[0]->{test7};
90   } unless $#_ > 0 or defined $_[0]->{test7};
91   return $_[0]->{test7} unless $#_ > 0;
92   $_[0]->{test7} = $_[1];
93   Scalar::Util::weaken($_[0]->{test7}) if ref $_[0]->{test7};
94   return $_[0]->{test7};
95 }