/** * @inheritdoc */ public function getDataForOrderCreate(\Magento\Sales\Model\Order $order) { $data = ['products' => $this->dataGetter->getProductsData($order)]; $shippingData = $this->dataGetter->getShippingData($order); if ($shippingData) { $data['products'][] = $shippingData; } $buyerData = $this->dataGetter->getBuyerData($order); if ($buyerData) { $data['buyer'] = $buyerData; } $basicData = $this->dataGetter->getBasicData($order); return array_merge($basicData, $data); }
public function testGetProductsData() { $name = 'Example'; $price = '5.4900'; $quantity = '1.5'; $order = $this->getMockBuilder(\Magento\Sales\Model\Order::class)->disableOriginalConstructor()->getMock(); $orderItem = $this->getMockBuilder(\Magento\Sales\Api\Data\OrderItemInterface::class)->getMockForAbstractClass(); $orderItem->expects($this->once())->method('getName')->willReturn($name); $orderItem->expects($this->once())->method('getPriceInclTax')->willReturn($price); $orderItem->expects($this->once())->method('getQtyOrdered')->willReturn($quantity); $orderItems = [$orderItem]; $order->expects($this->once())->method('getAllVisibleItems')->willReturn($orderItems); $productsData = $this->model->getProductsData($order); $this->assertEquals([['name' => $name, 'unitPrice' => $price * 100, 'quantity' => $quantity]], $productsData); $this->assertInternalType('float', $productsData[0]['quantity']); }