6 declare(strict_types=1);
29 private $objectManager;
34 private $orderRepository;
39 private $searchCriteriaBuilder;
44 private $shipmentRepository;
53 $this->orderRepository = $this->objectManager->get(OrderRepositoryInterface::class);
54 $this->searchCriteriaBuilder = $this->objectManager->get(SearchCriteriaBuilder::class);
55 $this->shipmentRepository = $this->objectManager->get(ShipmentRepositoryInterface::class);
70 public function testShipOrderWithSimpleProduct()
73 ->addFilter(
'increment_id',
'created_order_for_test')
76 $createdOrder = current($this->orderRepository->getList(
$searchCriteria)->getItems());
80 'extension_attributes' => [
81 'source_code' =>
'eu-2' 84 'orderId' => $createdOrder->getId(),
87 $this->buildServiceInfo((
int)$createdOrder->getEntityId()),
94 $shipping = $this->shipmentRepository->get(
$result);
95 $this->assertNotNull($shipping->getEntityId());
96 $this->assertEquals(
'3.0000', $shipping->getTotalQty());
97 $shipmentExtension = $shipping->getExtensionAttributes();
98 $this->assertEquals(
'eu-2', $shipmentExtension->getSourceCode());
99 }
catch (NoSuchEntityException $e) {
100 $this->fail(
'Failed asserting that Shipment was created');
104 $shippedOrder = current($this->orderRepository->getList(
$searchCriteria)->getItems());
106 $this->assertNotEquals(
107 $createdOrder->getStatus(),
108 $shippedOrder->getStatus(),
109 'Failed asserting that Order status was changed' 126 public function testShipOrderWithConfigurableProduct()
129 ->addFilter(
'increment_id',
'created_order_for_test')
132 $createdOrder = current($this->orderRepository->getList(
$searchCriteria)->getItems());
136 'extension_attributes' => [
137 'source_code' =>
'us-1' 140 'orderId' => $createdOrder->getId(),
143 $this->buildServiceInfo((
int)$createdOrder->getEntityId()),
147 $this->assertNotEmpty(
$result);
150 $shipping = $this->shipmentRepository->get(
$result);
151 $this->assertNotNull($shipping->getEntityId());
152 $this->assertEquals(
'3.0000', $shipping->getTotalQty());
153 $shipmentExtension = $shipping->getExtensionAttributes();
154 $this->assertEquals(
'us-1', $shipmentExtension->getSourceCode());
155 }
catch (NoSuchEntityException $e) {
156 $this->fail(
'Failed asserting that Shipment was created');
160 $shippedOrder = current($this->orderRepository->getList(
$searchCriteria)->getItems());
162 $this->assertNotEquals(
163 $createdOrder->getStatus(),
164 $shippedOrder->getStatus(),
165 'Failed asserting that Order status was changed' 175 private function buildServiceInfo(
int $orderId): array
179 'resourcePath' =>
'/V1/order/' . $orderId .
'/ship',
185 'operation' => self::SERVICE_READ_NAME .
'execute',
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
static getObjectManager()