cleanup
[gitmo/Moose.git] / t / 006_basic.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 1;
7 use Test::Exception;
8
9 BEGIN {
10     use_ok('Moose');           
11 }
12
13 =pod
14
15 ==> AtLeast.pm <==
16 package BAST::Web::Model::Constraint::AtLeast;
17
18 use strict;
19 use warnings;
20 use Moose;
21 use BAST::Web::Model::Constraint;
22
23 extends 'BAST::Web::Model::Constraint';
24
25 has 'value' => (isa => 'Num', is => 'ro');
26
27 sub validate {
28   my ($self, $field) = @_;
29   if ($self->validation_value($field) >= $self->value) {
30     return undef;
31   } else {
32     return $self->error_message;
33   }
34 }
35
36 sub error_message { 'must be at least '.shift->value; }
37
38 1;
39
40 ==> NoMoreThan.pm <==
41 package BAST::Web::Model::Constraint::NoMoreThan;
42
43 use strict;
44 use warnings;
45 use Moose;
46 use BAST::Web::Model::Constraint;
47
48 extends 'BAST::Web::Model::Constraint';
49
50 has 'value' => (isa => 'Num', is => 'ro');
51
52 sub validate {
53   my ($self, $field) = @_;
54   if ($self->validation_value($field) <= $self->value) {
55     return undef;
56   } else {
57     return $self->error_message;
58   }
59 }
60
61 sub error_message { 'must be no more than '.shift->value; }
62
63 1;
64
65 ==> OnLength.pm <==
66 package BAST::Web::Model::Constraint::OnLength;
67
68 use strict;
69 use warnings;
70 use Moose;
71
72 has 'units' => (isa => 'Str', is => 'ro');
73
74 override 'value' => sub {
75   return length(super());
76 };
77
78 override 'error_message' => sub {
79   my $self = shift;
80   return super().' '.$self->units;
81 };
82
83 1;
84
85 package BAST::Web::Model::Constraint::LengthNoMoreThan;
86
87 use strict;
88 use warnings;
89 use Moose;
90 use BAST::Web::Model::Constraint::NoMoreThan;
91 use BAST::Web::Model::Constraint::OnLength;
92
93 extends 'BAST::Web::Model::Constraint::NoMoreThan';
94    with 'BAST::Web::Model::Constraint::OnLength';
95
96 =cut