use strict; use warnings; use IO::File; use Test::More; use t::TestUtils; my $rs = schema->resultset('Package'); isa_ok($rs, 'BPM::Engine::Store::ResultSet::Package'); # standard DBIC interface { my $package = $rs->create({}); isa_ok($package, 'BPM::Engine::Store::Result::Package'); my $proc = schema->resultset('Process')->create({ package_id => $package->id }); isa_ok($proc, 'BPM::Engine::Store::Result::Process'); $package->delete(); is($rs->count, 0); is(schema->resultset('Process')->count, 0); } # create_from_xml { my $string = qq! !; my $fh = IO::File->new('./t/02-store/01-package-rs.xml'); foreach my $xmlin(\$string, $fh, './t/02-store/01-package-rs.xml') { my $package = $rs->create_from_xml($xmlin); isa_ok($package, 'BPM::Engine::Store::Result::Package'); my $process = $package->processes->first; isa_ok($process, 'BPM::Engine::Store::Result::Process'); is($process->process_uid, 'OrderPizza', 'Process id matches'); is($rs->count, 1); is(schema->resultset('Process')->count, 1); $package->delete(); is($rs->count, 0); is(schema->resultset('Process')->count, 0); } } # create_from_xpdl # XML::LibXML::Document #\$string # $file # $fh { my $xpdl = q| 2.1 |; my $fh = IO::File->new('./t/var/01-basic.xpdl'); foreach my $xml(\$xpdl, $fh, './t/var/01-basic.xpdl') { my $package = $rs->create_from_xpdl($xml); isa_ok($package, 'BPM::Engine::Store::Result::Package'); #is($package->discard_changes->package_uid, 'TestPackage'); } foreach(qw/ 01-basic.xpdl 02-branching.xpdl 06-iteration.xpdl 07-termination.xpdl 08-samples.xpdl 09-data.xpdl 10-tasks.xpdl /){ #warn "Package $_"; my $package = $rs->create_from_xpdl('./t/var/' . $_); isa_ok($package, 'BPM::Engine::Store::Result::Package'); my $process = $package->processes->first; isa_ok($process, 'BPM::Engine::Store::Result::Process'); my @res = $package->processes->all; isa_ok($res[0], 'BPM::Engine::Store::Result::Process'); } } done_testing;