public function testReportXmlToArray()
    {
        $xml = <<<XML
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<report>
    <report-name name="Foo Report" />
    <date-range date="Oct 22, 2013-Nov 1, 2013" />
    <table>
        <columns>
            <column name="budget" display="Budget" />
            <column name="avgCPC" display="Avg. CPC" />
            <column name="avgPosition" display="Avg. position" />
            <column name="campaign" display="Campaign" />
            <column name="clicks" display="Clicks" />
        </columns>
        <row budget="100.00" avgCPC="0.00" avgPosition="0.0" campaign="APSA - Pesquisa" clicks="0" />
        <row budget="12.00" avgCPC="0.84" avgPosition="2.3" campaign="Apsa - Locação BA - Abril 2011" clicks="430" />
        <row budget="20.00" avgCPC="1.23" avgPosition="1.6" campaign="Apsa - Condomínio PE - Abril 2011" clicks="174" />
    </table>
</report>
XML;
        $expected = array((object) array('budget' => "100.00", 'avgCPC' => "0.00", 'avgPosition' => "0.0", 'campaign' => "APSA - Pesquisa", 'clicks' => "0"), (object) array('budget' => "12.00", 'avgCPC' => "0.84", 'avgPosition' => "2.3", 'campaign' => "Apsa - Locação BA - Abril 2011", 'clicks' => "430"), (object) array('budget' => "20.00", 'avgCPC' => "1.23", 'avgPosition' => "1.6", 'campaign' => "Apsa - Condomínio PE - Abril 2011", 'clicks' => "174"));
        $arr = $this->xml_parser->reportXmlToArray($xml);
        $this->assertEquals($expected, $arr);
    }
예제 #2
0
 /**
  * @param ReportDefinition $report_definition
  *
  * @return \Guzzle\Http\Message\RequestInterface
  */
 private function buildRequest(ReportDefinition $report_definition)
 {
     $xml = $this->xml_parser->arrayToXml($report_definition->toArray());
     $request = $this->client->post('https://adwords.google.com/api/adwords/reportdownload/' . self::API_VERSION, array('Authorization' => $this->auth_token, 'developerToken' => $this->developer_token, 'clientCustomerId' => $this->customer_id), array('__rdxml' => $xml));
     return $request;
 }