Mercurial > pub > Impl
annotate _test/Test/ORM/Schema.pm @ 32:56cef8e3cda6
+1
| author | Sergey |
|---|---|
| date | Mon, 09 Nov 2009 01:39:31 +0300 |
| parents | d59526f6310e |
| children | d660fb38b7cc |
| rev | line source |
|---|---|
| 28 | 1 package Test::ORM::Schema; |
| 2 use strict; | |
| 3 use warnings; | |
| 30 | 4 use base qw(IMPL::Test::Unit); |
| 28 | 5 |
| 30 | 6 __PACKAGE__->PassThroughArgs; |
| 7 | |
| 8 use IMPL::Test qw(test failed); | |
| 9 | |
| 10 test ExtractClassSchema => sub { | |
| 11 my ($this) = @_; | |
| 12 | |
| 13 my $schema = Test::ORM::Schema::Data::User->ormGetSchema('Test::ORM::Schema::Data'); | |
| 14 failed "Wrong number of the elements","expected: 4","got: ".$schema->childNodes->Count unless $schema->childNodes->Count == 4; | |
| 15 | |
| 16 return 1; | |
| 17 }; | |
| 18 | |
| 19 test StaticSchema => sub { | |
| 20 my ($this) = @_; | |
| 21 | |
| 22 my $schema = Test::ORM::Schema::Data->instance; | |
| 23 | |
| 24 return 1; | |
| 25 }; | |
| 26 | |
| 28 | 27 |
| 28 package Test::ORM::Schema::Data::User; | |
| 29 use base qw(IMPL::ORM::Object); | |
| 30 use IMPL::Class::Property; | |
| 31 | |
| 32 BEGIN { | |
| 33 public property Name => prop_all, { type => 'String' }; # Field | |
| 34 public property Id => prop_all, { type => 'String' }; # Field | |
| 35 public property Roles => prop_all | prop_list, { type=> 'Test::ORM::Schema::Data::Role'}; # HasMany | |
| 36 } | |
| 37 | |
| 38 package Test::ORM::Schema::Data::Role; | |
| 39 use base qw(IMPL::ORM::Object); | |
| 40 use IMPL::Class::Property; | |
| 41 | |
| 42 BEGIN { | |
| 43 public property Name => prop_all, { type => 'String' }; # Field | |
| 44 } | |
| 45 | |
| 46 package Test::ORM::Schema::Data::Session; | |
| 47 use base qw(IMPL::ORM::Object); | |
| 48 use IMPL::Class::Property; | |
| 49 use IMPL::ORM::Helpers qw(Map); | |
| 50 | |
| 51 BEGIN { | |
| 52 public property Id => prop_get, { type => 'String' }; # Field | |
| 53 public property User => prop_get, { type => 'Test::ORM::Schema::Data::User' }; # HasOne | |
|
31
d59526f6310e
Small fixes to Test framework (correct handlinf of the compilation errors in the test units)
Sergey
parents:
30
diff
changeset
|
54 #public property Data => prop_all, { type => Map( 'String','String' ) }; # HasOne |
|
d59526f6310e
Small fixes to Test framework (correct handlinf of the compilation errors in the test units)
Sergey
parents:
30
diff
changeset
|
55 public property AccessTime => prop_get, { type => 'DateTime' }; # Field |
| 28 | 56 } |
| 57 | |
| 58 package Test::ORM::Schema::Data; | |
| 59 use base qw(IMPL::ORM::Schema); | |
| 60 | |
| 61 __PACKAGE__->ValueTypes ( | |
| 62 'String' => 'IMPL::ORM::Value::String', | |
| 63 'DateTime' => 'IMPL::ORM::Value::DateTime', | |
| 64 'Integer' => 'IMPL::ORM::Value::Inetger', | |
| 65 'Float' => 'IMPL::ORM::Value::Float', | |
| 66 'Decimal' => 'IMPL::ORM::Value::Decimal' | |
| 67 ); | |
| 68 | |
| 30 | 69 __PACKAGE__->usePrefix(__PACKAGE__); |
| 70 __PACKAGE__->Classes qw( | |
| 71 User | |
| 72 Role | |
| 73 Session | |
| 74 ); | |
| 75 | |
|
31
d59526f6310e
Small fixes to Test framework (correct handlinf of the compilation errors in the test units)
Sergey
parents:
30
diff
changeset
|
76 __PACKAGE__->CompleteSchema; |
|
d59526f6310e
Small fixes to Test framework (correct handlinf of the compilation errors in the test units)
Sergey
parents:
30
diff
changeset
|
77 |
| 28 | 78 1; |
