#!/usr/bin/perl # First example XPDL script from Interapy use warnings; use strict; use lib 'lib'; use Test::More tests => 8; # use Log::Report mode => 3; # enable debugging use BPM::XPDL; use BPM::XPDL::Util ':xpdl10'; use XML::Compile::Util 'pack_type'; use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Quotekeys = 0; my $example = <<_EXAMPLE; 1.0 Together 2009-02-14 21:06:01 2009-02-14 21:06:08 _EXAMPLE my ($type, $data) = BPM::XPDL->from($example); #warn Dumper $data; is($type, pack_type(NS_XPDL_10, 'Package')); isa_ok($data, 'HASH'); is($data->{Id}, 'newpkg1'); is($data->{PackageHeader}{Vendor}, 'Together'); is($data->{WorkflowProcesses}{WorkflowProcess}[0]{Name}, 'Order Pizza'); my $act = $data->{WorkflowProcesses}{WorkflowProcess}[0]{Activities}{Activity}; isa_ok($act, 'ARRAY'); cmp_ok(scalar @$act, '==', 3); is(join(' ', map { $_->{Id} } @$act), 'PlaceOrder WaitForDelivery PayPizzaGuy');