cleanup
[gitmo/Moose.git] / t / 006_basic.t
CommitLineData
b841b2a3 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
471c4f09 6use Test::More tests => 1;
b841b2a3 7use Test::Exception;
8
9BEGIN {
10 use_ok('Moose');
11}
e9bb8a31 12
13=pod
14
15==> AtLeast.pm <==
16package BAST::Web::Model::Constraint::AtLeast;
17
18use strict;
19use warnings;
20use Moose;
21use BAST::Web::Model::Constraint;
22
23extends 'BAST::Web::Model::Constraint';
24
25has 'value' => (isa => 'Num', is => 'ro');
26
27sub 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
36sub error_message { 'must be at least '.shift->value; }
37
381;
39
40==> NoMoreThan.pm <==
41package BAST::Web::Model::Constraint::NoMoreThan;
42
43use strict;
44use warnings;
45use Moose;
46use BAST::Web::Model::Constraint;
47
48extends 'BAST::Web::Model::Constraint';
49
50has 'value' => (isa => 'Num', is => 'ro');
51
52sub 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
61sub error_message { 'must be no more than '.shift->value; }
62
631;
64
65==> OnLength.pm <==
66package BAST::Web::Model::Constraint::OnLength;
67
68use strict;
69use warnings;
70use Moose;
71
72has 'units' => (isa => 'Str', is => 'ro');
73
74override 'value' => sub {
75 return length(super());
76};
77
78override 'error_message' => sub {
79 my $self = shift;
80 return super().' '.$self->units;
81};
82
831;
84
85package BAST::Web::Model::Constraint::LengthNoMoreThan;
86
87use strict;
88use warnings;
89use Moose;
90use BAST::Web::Model::Constraint::NoMoreThan;
91use BAST::Web::Model::Constraint::OnLength;
92
93extends 'BAST::Web::Model::Constraint::NoMoreThan';
94 with 'BAST::Web::Model::Constraint::OnLength';
95
96=cut