#!/bin/env perl BEGIN { unless(grep /blib/, @INC) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib'; } } use strict; use Test; use SOAP::Lite; plan tests => 40; my($a, $s, $r, $serialized, $deserialized); $deserialized = SOAP::Custom::XML::Deserializer -> deserialize(join '', <DATA>); ok(ref $deserialized); $r = $deserialized->valueof('/Envelope/Body'); ok(ref $r); my @portfolios = $r->Report->Request->Composition->PortfolioDistribution; ok(@portfolios == 6); foreach my $portfolio (@portfolios) { # test attributes print $portfolio->type, " ", $portfolio->date, "\n"; ok($portfolio->type && $portfolio->date); foreach my $row ($portfolio->Row) { # test elements print " ", $row->Element, " ", $row->Value, "\n"; ok($row->Element && $row->Value); } } __DATA__ <?xml version="1.0" encoding="UTF-8"?> <Envelope version="1.1"> <Header /> <Body> <Report> <Header> <ClientRef /> <FundCusip>61744J366</FundCusip> <SepAcctDesc /> </Header> <Request> <Errors> <Error>Returned no data for request: PortfolioDistribution</Error> <Error>Returned no data for request: PortfolioDistribution</Error> <Error>Returned no data for request: PortfolioDistribution</Error> <Error>Returned no data for request: PortfolioDistribution</Error> <Error>Could not retrieve PortfolioDistribution</Error> <Error>Could not retrieve PortfolioDistribution</Error> <Error>Could not retrieve PortfolioDistribution</Error> <Error>Could not retrieve PortfolioDistribution</Error> </Errors> <Composition> <PortfolioDistribution type="CE" date="09/30/2000" /> <PortfolioDistribution type="GB" date="09/30/2000" /> <PortfolioDistribution type="ST" date="09/30/2000"> <Row> <Element>Common Stocks</Element> <Value>0.9991</Value> </Row> <Row> <Element>Other</Element> <Value>0.0021</Value> </Row> <Row> <Element>Cash & Cash Equivalents</Element> <Value>-0.0012</Value> </Row> </PortfolioDistribution> <PortfolioDistribution type="TT" date="09/30/2000"> <Row> <Element>General Electric Company</Element> <Value>0.0458</Value> </Row> <Row> <Element>Cisco Systems Inc</Element> <Value>0.033</Value> </Row> <Row> <Element>Microsoft Corporation</Element> <Value>0.0263</Value> </Row> <Row> <Element>Exxon Mobil Corp.</Element> <Value>0.0263</Value> </Row> <Row> <Element>Pfizer, Inc.</Element> <Value>0.0231</Value> </Row> <Row> <Element>Intel Corporation</Element> <Value>0.0209</Value> </Row> <Row> <Element>Citigroup Inc</Element> <Value>0.02</Value> </Row> <Row> <Element>Emc Corp.</Element> <Value>0.0185</Value> </Row> <Row> <Element>American International Group, Inc.</Element> <Value>0.0181</Value> </Row> <Row> <Element>Oracle Corporation</Element> <Value>0.0172</Value> </Row> </PortfolioDistribution> <PortfolioDistribution type="IB" date="09/30/2000"> <Row> <Element>Pharmaceuticals</Element> <Value>0.0941</Value> </Row> <Row> <Element>Communications Equipment</Element> <Value>0.0857</Value> </Row> <Row> <Element>Computers & Peripherals</Element> <Value>0.0764</Value> </Row> <Row> <Element>Diversified Financials</Element> <Value>0.0724</Value> </Row> <Row> <Element>Industrial Conglomerates</Element> <Value>0.0581</Value> </Row> <Row> <Element>Diversified Telecommunication Services</Element> <Value>0.058</Value> </Row> <Row> <Element>Software</Element> <Value>0.056</Value> </Row> <Row> <Element>Other</Element> <Value>0.5002</Value> </Row> <Row> <Element>Cash & Cash Equivalents</Element> <Value>-0.0012</Value> </Row> </PortfolioDistribution> <PortfolioDistribution type="SB" date="09/30/2000"> <Row> <Element>Information Technology</Element> <Value>0.2964</Value> </Row> <Row> <Element>Financials</Element> <Value>0.154</Value> </Row> <Row> <Element>Health Care</Element> <Value>0.1265</Value> </Row> <Row> <Element>Consumer Discretionary</Element> <Value>0.1026</Value> </Row> <Row> <Element>Industrials</Element> <Value>0.0874</Value> </Row> <Row> <Element>Telecommunication Services</Element> <Value>0.0632</Value> </Row> <Row> <Element>Consumer Staples</Element> <Value>0.0575</Value> </Row> <Row> <Element>Other</Element> <Value>0.1136</Value> </Row> <Row> <Element>Cash & Cash Equivalents</Element> <Value>-0.0012</Value> </Row> </PortfolioDistribution> </Composition> </Request> </Report> </Body> </Envelope>