/**
  * Creates Payment Data Object
  *
  * @param InfoInterface $paymentInfo
  * @return PaymentDataObjectInterface
  */
 public function create(InfoInterface $paymentInfo)
 {
     if ($paymentInfo instanceof Payment) {
         $data['order'] = $this->orderAdapterFactory->create(['order' => $paymentInfo->getOrder()]);
     } elseif ($paymentInfo instanceof \Magento\Quote\Model\Quote\Payment) {
         $data['order'] = $this->quoteAdapterFactory->create(['quote' => $paymentInfo->getQuote()]);
     }
     $data['payment'] = $paymentInfo;
     return $this->objectManager->create('Magento\\Payment\\Gateway\\Data\\PaymentDataObject', $data);
 }
 public function testCreatePaymentDataObjectFromQuote()
 {
     /** @var \Magento\Quote\Model\Quote $quoteMock */
     $quoteMock = $this->getMockBuilder('Magento\\Quote\\Model\\Quote')->disableOriginalConstructor()->getMock();
     /** @var OrderAdapter $orderAdapterMock */
     $quoteAdapterMock = $this->getMockBuilder('Magento\\Payment\\Gateway\\Data\\Quote\\QuoteAdapter')->disableOriginalConstructor()->getMock();
     /** @var \Magento\Quote\Model\Quote\Payment $paymentInfoMock */
     $paymentInfoMock = $this->getMockBuilder('Magento\\Quote\\Model\\Quote\\Payment')->disableOriginalConstructor()->getMock();
     $paymentInfoMock->expects($this->once())->method('getQuote')->willReturn($quoteMock);
     $this->quoteAdapterFactoryMock->expects($this->once())->method('create')->with(['quote' => $quoteMock])->willReturn($quoteAdapterMock);
     $this->objectManagerMock->expects($this->once())->method('create')->with('Magento\\Payment\\Gateway\\Data\\PaymentDataObject', ['order' => $quoteAdapterMock, 'payment' => $paymentInfoMock])->willReturn($this->paymentDataObjectMock);
     $this->assertSame($this->paymentDataObjectMock, $this->model->create($paymentInfoMock));
 }