diff options
Diffstat (limited to 't/lib/RTest/InterfaceModel/DBIC.pm')
-rw-r--r-- | t/lib/RTest/InterfaceModel/DBIC.pm | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/t/lib/RTest/InterfaceModel/DBIC.pm b/t/lib/RTest/InterfaceModel/DBIC.pm deleted file mode 100644 index 3a2bf57..0000000 --- a/t/lib/RTest/InterfaceModel/DBIC.pm +++ /dev/null @@ -1,140 +0,0 @@ -package RTest::InterfaceModel::DBIC; - -use base qw/Reaction::Test::WithDB Reaction::Object/; -use Reaction::Class; -use ComponentUI::TestModel; -use Test::More (); - -has '+schema_class' => (default => sub { 'RTest::TestDB' }); - -has im_schema => (is =>'ro', isa => 'ComponentUI::TestModel', lazy_build => 1); -sub build_im_schema{ - my $self = shift; - - my (@dm) = ComponentUI::TestModel->domain_models; - Test::More::ok(@dm == 1, 'Correct number of Domain Models'); - my $dm = shift @dm; - Test::More::ok($dm->name eq '_testdb_schema', 'Domain Model created correctly'); - - ComponentUI::TestModel->new($dm->name => $self->schema); -} - -sub test_SchemaClass :Tests { - my $self = shift; - my $s = $self->im_schema; - - #just make sure here... - Test::More::isa_ok( $s, 'Reaction::InterfaceModel::Object', - 'Correctly override default base object' ); - - my %pa = map{$_->name => $_ } $s->parameter_attributes; - Test::More::ok(keys %pa == 3, 'Correct number of Parameter Attributes'); - - Test::More::ok($pa{Foo} && $pa{'Bar'} && $pa{'Baz'}, - 'Parameter Attributes named correctly'); - - #for now since we have no generic collection object - Test::More::ok - ( $pa{Foo}->_isa_metadata eq 'Reaction::InterfaceModel::DBIC::Collection', - 'Parameter Attributes typed correctly' ); - - Test::More::is($pa{Baz}->reader, 'bazes', 'Correct Baz reader created'); - Test::More::is($pa{Foo}->reader, 'foo_collection', 'Correct Foo reader created'); - Test::More::is($pa{Bar}->reader, 'bar_collection', 'Correct Bar reader created'); - - #is this check good enough? Moose will take care of checking the type constraints, - # so i dont need tocheck that Moose++ !! - my $foo1 = $s->foo_collection; - my $foo2 = $s->foo_collection; - Test::More::ok - (Scalar::Util::refaddr($foo1) ne Scalar::Util::refaddr($foo2), - 'Fresh Collections work'); -} - -sub test_ObjectClass :Tests { - my $self = shift; - - my $collection = $self->im_schema->foo_collection; - Test::More::ok( my $im = $collection->find({ id => 1}), 'Find call successful'); - - Test::More::isa_ok( $im, 'ComponentUI::TestModel::Foo', - 'Correct result class set' ); - - my %pa = map{$_->name => $_ } $im->parameter_attributes; - Test::More::ok(keys %pa == 4, 'Correct number of Parameter Attributes'); - - Test::More::is( $pa{first_name}->_isa_metadata, 'NonEmptySimpleStr' - ,'Column ParameterAttribute typed correctly'); - - Test::More::is - ($pa{baz_list}->_isa_metadata, 'Reaction::InterfaceModel::DBIC::Collection', - "Relationship detected successfully"); - - my (@dm) = $im->domain_models; - Test::More::ok(@dm == 1, 'Correct number of Domain Models'); - my $dm = shift @dm; - Test::More::is($dm->name, '_foo_store', 'Domain Model created correctly'); - - my $rs = $collection->_override_action_args_for->{target_model}; - Test::More::isa_ok( $rs, 'DBIx::Class::ResultSet', - 'Collection target_type ISA ResultSet' ); - - my $row = $im->_default_action_args_for->{target_model}; - Test::More::isa_ok( $row, 'DBIx::Class::Row', 'Collection target_type ISA Row' ); - - my $ctx = $self->simple_mock_context; - - my $create = $collection->action_for('Create', ctx => $ctx); - Test::More::isa_ok( $create, 'Reaction::InterfaceModel::Action', - 'Create action isa Action' ); - - Test::More::isa_ok( $create, 'ComponentUI::TestModel::Foo::Action::Create', - 'Create action has correct name' ); - - Test::More::isa_ok - ( $create, 'Reaction::InterfaceModel::Action::DBIC::ResultSet::Create', - 'Create action isa Action::DBIC::ResultSet::Create' ); - - - my $update = $im->action_for('Update', ctx => $ctx); - Test::More::isa_ok( $update, 'Reaction::InterfaceModel::Action', - 'Update action isa Action' ); - - Test::More::isa_ok( $update, 'ComponentUI::TestModel::Foo::Action::Update', - 'Update action has correct name' ); - - Test::More::isa_ok - ( $update, 'Reaction::InterfaceModel::Action::DBIC::Result::Update', - 'Update action isa Action::DBIC::ResultSet::Update' ); - - my $delete = $im->action_for('Delete', ctx => $ctx); - Test::More::isa_ok( $delete, 'Reaction::InterfaceModel::Action', - 'Delete action isa Action' ); - - Test::More::isa_ok( $delete, 'ComponentUI::TestModel::Foo::Action::Delete', - 'Delete action has correct name' ); - - Test::More::isa_ok - ( $delete, 'Reaction::InterfaceModel::Action::DBIC::Result::Delete', - 'Delete action isa Action::DBIC::ResultSet::Delete' ); - - - my $custom = $im->action_for('CustomAction', ctx => $ctx); - Test::More::isa_ok( $custom, 'Reaction::InterfaceModel::Action', - 'CustomAction isa Action' ); - - Test::More::isa_ok( $custom, 'ComponentUI::TestModel::Foo::Action::CustomAction', - 'CustomAction has correct name' ); - - my %params = map {$_->name => $_ } $custom->parameter_attributes; - Test::More::ok(exists $params{$_}, "Field ${_} reflected") - for qw(first_name last_name baz_list); - - #TODO -- will I need a mock $c object or what? I dont really know much about - # testingcat apps, who wants to volunteer? - # main things needing testing is attribute reflection - # and correct action class creation (superclasses) -} - - -1; |