public function testSerialization()
 {
     $element1 = new ProductImage('MOB_12543');
     $element1->add(new ImageUri('http://host.com/img1.jpg'));
     $element2 = new ProductImage('ASM_A8012');
     $element2->add(new ImageUri('http://host.com/img2.jpg'));
     $collection = new ProductImageCollection();
     $collection->add($element1);
     $collection->add($element2);
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = \JMS\Serializer\SerializerBuilder::create()->build();
     $xml = '
         <Request>
             <ProductImage>
                 <SellerSku>MOB_12543</SellerSku>
                 <Images>
                     <Image>http://host.com/img1.jpg</Image>
                 </Images>
             </ProductImage>
             <ProductImage>
                 <SellerSku>ASM_A8012</SellerSku>
                 <Images>
                     <Image>http://host.com/img2.jpg</Image>
                 </Images>
             </ProductImage>
         </Request>
     ';
     $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($collection, 'xml'));
 }
 public function testSerialization()
 {
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = \JMS\Serializer\SerializerBuilder::create()->build();
     $xml = '<Image>http://www.mobly.com.br/img/product-1.jpg</Image>';
     $imageUri = new ImageUri('http://www.mobly.com.br/img/product-1.jpg');
     $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($imageUri, 'xml'));
 }
 public function __invoke(ResponseInterface $response)
 {
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     if (count($response->xml()->xpath('/ErrorResponse'))) {
         $serializer = SerializerBuilder::create()->build();
         return $serializer->deserialize($response->xml()->asXML(), 'SellerCenter\\SDK\\Common\\Api\\Response\\Error\\ErrorResponse', 'xml');
     }
     return;
 }
 public function testSerialization()
 {
     $collection = new ImageUriCollection();
     $collection->add(new ImageUri('http://host.com/img1.jpg'));
     $collection->add(new ImageUri('http://host.com/img2.jpg'));
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = \JMS\Serializer\SerializerBuilder::create()->build();
     $xml = '
         <Images>
             <Image>http://host.com/img1.jpg</Image>
             <Image>http://host.com/img2.jpg</Image>
         </Images>
     ';
     $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($collection, 'xml'));
 }
    public function testeDeserialization()
    {
        $xml = '<SuccessResponse>
  <Head>
    <RequestId><![CDATA[]]></RequestId>
    <RequestAction><![CDATA[GetProducts]]></RequestAction>
    <ResponseType><![CDATA[Products]]></ResponseType>
  </Head>
  <Body>
    <Products>
      <Product>
        <ParentSku><![CDATA[ASM_A8012]]></ParentSku>
        <Status><![CDATA[inactive]]></Status>
        <Name><![CDATA[Product name]]></Name>
        <Variation><![CDATA[...]]></Variation>
        <Quantity><![CDATA[0]]></Quantity>
        <SellerSku><![CDATA[ASM_A8012]]></SellerSku>
        <Price>123.99</Price>
      </Product>
      <Product>
        <ParentSku><![CDATA[DC_10000]]></ParentSku>
        <Status><![CDATA[inactive]]></Status>
        <Name><![CDATA[Produto teste 1 0 0 1 3]]></Name>
        <Variation><![CDATA[...]]></Variation>
        <Quantity><![CDATA[0]]></Quantity>
        <SellerSku><![CDATA[DC_10000]]></SellerSku>
        <Price>123</Price>
      </Product>
    </Products>
  </Body>
</SuccessResponse>';
        \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
        $serializer = \JMS\Serializer\SerializerBuilder::create()->build();
        /* @var Response $response */
        $response = $serializer->deserialize($xml, 'SellerCenter\\SDK\\Product\\Api\\GetProducts\\Response', 'xml');
        $this->assertInstanceOf('SellerCenter\\SDK\\Product\\Api\\GetProducts\\Response', $response);
        $this->assertInstanceOf('SellerCenter\\SDK\\Common\\Api\\Response\\Success\\Head', $response->getHead());
        $this->assertInstanceOf('SellerCenter\\SDK\\Product\\Api\\GetProducts\\Body', $response->getBody());
        $this->assertEquals('GetProducts', $response->getHead()->getRequestAction());
        $this->assertEquals('Products', $response->getHead()->getResponseType());
        $this->assertCount(2, $response->getBody()->getProducts());
        /* @var \SellerCenter\SDK\Product\Product $product */
        $product = $response->getBody()->getProducts()->first();
        $this->assertInstanceOf('SellerCenter\\SDK\\Product\\Product', $product);
        $this->assertEquals('ASM_A8012', $product->getSellerSku());
        $this->assertCount(2, $response->getBody()->toArray());
    }
 /**
  * @param SimpleXMLElement $value
  * @param string           $deserialize
  *
  * @return mixed
  */
 public function parse(SimpleXMLElement $value, $deserialize)
 {
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = SerializerBuilder::create()->build();
     return $serializer->deserialize($value->asXML(), $deserialize, 'xml');
 }
 /**
  * Builds the XML body based on an anotated class.
  *
  * @param $class
  *
  * @return string
  */
 public function serialize($class)
 {
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = SerializerBuilder::create()->build();
     return $serializer->serialize($class, 'xml');
 }
 public function testDeserialization()
 {
     \SellerCenter\SDK\Common\AnnotationRegistry::registerAutoloadNamespace();
     $serializer = \JMS\Serializer\SerializerBuilder::create()->build();
     $xml = '<Product><SellerSku>ASM_A8012</SellerSku></Product>';
     /* @var \SellerCenter\SDK\Product\Product $product */
     $product = $serializer->deserialize($xml, 'SellerCenter\\SDK\\Product\\Product', 'xml');
     $this->assertEquals('ASM_A8012', $product->getSellerSku());
 }