# -*-perl-*- # $Id: 60_export_object.t,v 1.2 2004/02/26 02:02:29 lachoy Exp $ use strict; use lib qw( t/ ); use Test::More tests => 15; do "t/config.pl"; my $ALL = q|$item = [ { spops_class => 'ExportObjectTest', field_order => [ qw/ myname / ] }, [q{foo}], [q{bar}], [q{baz}], ]; |; my $SOME = q|$item = [ { spops_class => 'ExportObjectTest', field_order => [ qw/ myname / ] }, [q{bar}], ]; |; my $ALL_ID = q|$item = [ { spops_class => 'ExportObjectTest', field_order => [ qw/ myid myname / ] }, [q{1}, q{foo}], [q{2}, q{bar}], [q{3}, q{baz}], ]; |; my $SOME_ID = q|$item = [ { spops_class => 'ExportObjectTest', field_order => [ qw/ myid myname / ] }, [q{2}, q{bar}], ]; |; { my %config = ( test => { class => 'ExportObjectTest', isa => [ 'SPOPS::Loopback' ], field => [ qw( myid myname ) ], id_field => 'myid', }, ); # Create our test class using the loopback require_ok( 'SPOPS::Initialize' ); my $class_init_list = eval { SPOPS::Initialize->process({ config => \%config }) }; ok( ! $@, "Initialize process run $@" ); is( $class_init_list->[0], 'ExportObjectTest', 'Object class initialized' ); eval { ExportObjectTest->new({ myid => 1, myname => 'foo' })->save(); ExportObjectTest->new({ myid => 2, myname => 'bar' })->save(); ExportObjectTest->new({ myid => 3, myname => 'baz' })->save(); }; diag( "Error creating loopback objects: $@" ) if ( $@ ); ok( ! $@, "Objects to export created" ); require_ok( 'SPOPS::Export' ); my ( $exporter, $export_all_data, $export_some_data ); eval { $exporter = SPOPS::Export->new( 'object', { object_class => 'ExportObjectTest' } ) }; ok( ! $@, "Exporter created" ); $export_all_data = eval { $exporter->run }; ok( ! $@, "Export all data (no ID)" ); is( $export_all_data, $ALL, "Export all data matches (no ID)" ); $exporter->where( "myname = 'bar'" ); $export_some_data = eval { $exporter->run }; ok( ! $@, "Export some data (no ID)" ); is( $export_some_data, $SOME, "Export some data matches (no ID)" ); my ( $exporter_id, $export_all_id_data, $export_some_id_data ); eval { $exporter_id = SPOPS::Export->new( 'object', { object_class => 'ExportObjectTest', include_id => 1 } ) }; ok( ! $@, "Exporter including ID created" ); $export_all_id_data = eval { $exporter_id->run }; ok( ! $@, "Export all data (with ID)" ); is( $export_all_id_data, $ALL_ID, "Export all data matches (with ID)" ); $exporter_id->where( "myname = 'bar'" ); $export_some_id_data = eval { $exporter_id->run }; ok( ! $@, "Export some data (with ID)" ); is( $export_some_id_data, $SOME_ID, "Export some data matches (with ID)" ); }