comparison Lib/IMPL/Test.pm @ 278:4ddb27ff4a0b

core refactoring
author cin
date Mon, 04 Feb 2013 02:10:37 +0400
parents 6253872024a4
children 546957c50a36
comparison
equal deleted inserted replaced
277:6585464c4664 278:4ddb27ff4a0b
1 package IMPL::Test; 1 package IMPL::Test;
2 use strict; 2 use strict;
3 use warnings; 3 use warnings;
4 4
5 use IMPL::Const qw(:access);
5 require IMPL::Test::SkipException; 6 require IMPL::Test::SkipException;
6 7
7 require Exporter; 8 require Exporter;
8 our @ISA = qw(Exporter); 9 our @ISA = qw(Exporter);
9 our @EXPORT_OK = qw(&test &shared &failed &cmparray &skip &run_plan &assert &GetCallerSourceLine); 10 our @EXPORT_OK = qw(&test &shared &failed &cmparray &skip &run_plan &assert &GetCallerSourceLine);
10 11
11 require IMPL::Test::Unit; 12 require IMPL::Test::Unit;
12 require IMPL::Test::Plan; 13 require IMPL::Test::Plan;
13 require IMPL::Test::TAPListener; 14 require IMPL::Test::TAPListener;
14 use IMPL::Class::Member;
15 15
16 sub test($$) { 16 sub test($$) {
17 my ($name,$code) = @_; 17 my ($name,$code) = @_;
18 my $class = caller; 18 my $class = caller;
19 19
26 my ($propInfo) = @_; 26 my ($propInfo) = @_;
27 27
28 my $class = caller; 28 my $class = caller;
29 29
30 die new IMPL::Exception("Only properties could be declared as shared",$propInfo->name) unless eval {$propInfo->isa('IMPL::Class::PropertyInfo')}; 30 die new IMPL::Exception("Only properties could be declared as shared",$propInfo->name) unless eval {$propInfo->isa('IMPL::Class::PropertyInfo')};
31 die new IMPL::Exception("You can't mark the readonly property as shared",$propInfo->name) unless $propInfo->canSet; 31 die new IMPL::Exception("You can't mark the readonly property as shared",$propInfo->name) unless $propInfo->setter;
32 die new IMPL::Exception("Only public properties could be declared as shared",$propInfo->name) unless $propInfo->access == IMPL::Class::Member::MOD_PUBLIC; 32 die new IMPL::Exception("Only public properties could be declared as shared",$propInfo->name) unless $propInfo->access == ACCESS_PUBLIC;
33 33
34 $class->set_meta(new IMPL::Test::Unit::SharedData($propInfo->name)); 34 $class->set_meta(new IMPL::Test::Unit::SharedData($propInfo->name));
35 } 35 }
36 36
37 sub failed($;@) { 37 sub failed($;@) {