/**
  * Create DOMDocumentFragment with the <Item> node.
  * @param  EbayEnterprise_Catalog_Model_Pim_Product $pimProduct
  * @param string $childNode
  * @return DOMDocumentFragment
  */
 protected function _buildItemNode(EbayEnterprise_Catalog_Model_Pim_Product $pimProduct, $childNode)
 {
     $fragment = $this->_doc->createDocumentFragment();
     $attributes = $pimProduct->getPimAttributes();
     if (count($attributes)) {
         $itemNode = $fragment->appendChild($this->_doc->createElement($childNode));
         foreach (array_unique($attributes) as $pimAttribute) {
             $this->_appendAttributeValue($itemNode, $pimAttribute);
         }
     }
     return $fragment;
 }
 /**
  * Create the DOMDocument representing the feed. Should initialize (add root
  * node and message header) the DOMDocument, build out and append fragments
  * for each item to be included, and validate the resulting DOM.
  */
 public function testCreateDomFromFeedData()
 {
     $itemNode = 'Item';
     $isValidate = 'true';
     $this->_doc->loadXML('<root></root>');
     $itemFragment = $this->_doc->createDocumentFragment();
     $itemFragment->appendChild($this->_doc->createElement('Item'));
     $pimProduct = $this->getModelMockBuilder('ebayenterprise_catalog/pim_product')->disableOriginalConstructor()->getMock();
     $this->replaceByMock('helper', 'eb2ccore', $this->_coreHelper);
     $this->_coreHelper->expects($this->once())->method('parseBool')->with($this->identicalTo($isValidate))->will($this->returnValue(true));
     $this->_pimProductCollection->expects($this->once())->method('getItems')->will($this->returnValue(array($pimProduct)));
     $pim = $this->getModelMockBuilder('ebayenterprise_catalog/pim')->disableOriginalConstructor()->setMethods(array('_buildItemNode', '_startDocument', '_validateDocument', '_getFeedConfig'))->getMock();
     $pim->expects($this->once())->method('_startDocument')->will($this->returnSelf());
     $pim->expects($this->once())->method('_buildItemNode')->with($this->identicalTo($pimProduct), $this->identicalTo($itemNode))->will($this->returnValue($itemFragment));
     $pim->expects($this->once())->method('_validateDocument')->will($this->returnSelf());
     $pim->expects($this->once())->method('_getFeedConfig')->will($this->returnValue($this->_feedTypeConfig));
     EcomDev_Utils_Reflection::setRestrictedPropertyValue($pim, '_doc', $this->_doc);
     $this->assertSame($this->_doc, EcomDev_Utils_Reflection::invokeRestrictedMethod($pim, '_createDomFromFeedData', array($this->_pimProductCollection, $this->_feedTypeConfig)));
     $this->assertSame('<root><Item></Item></root>', $this->_doc->C14N());
 }