OrderStatusHistoryAddTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Service\V1;
  7. use Magento\Sales\Api\Data\OrderStatusHistoryInterface;
  8. use Magento\TestFramework\TestCase\WebapiAbstract;
  9. /**
  10. * Class OrderCommentAddTest
  11. *
  12. * @package Magento\Sales\Service\V1
  13. */
  14. class OrderStatusHistoryAddTest extends WebapiAbstract
  15. {
  16. const SERVICE_READ_NAME = 'salesOrderManagementV1';
  17. const SERVICE_VERSION = 'V1';
  18. const ORDER_INCREMENT_ID = '100000001';
  19. /**
  20. * @var \Magento\Framework\ObjectManagerInterface
  21. */
  22. protected $objectManager;
  23. protected function setUp()
  24. {
  25. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  26. }
  27. /**
  28. * @magentoApiDataFixture Magento/Sales/_files/order.php
  29. * @SuppressWarnings(PHPMD.UnusedLocalVariable)
  30. */
  31. public function testOrderCommentAdd()
  32. {
  33. /** @var \Magento\Sales\Model\Order $order */
  34. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class);
  35. $order->loadByIncrementId(self::ORDER_INCREMENT_ID);
  36. $commentData = [
  37. OrderStatusHistoryInterface::COMMENT => 'Hello',
  38. OrderStatusHistoryInterface::ENTITY_ID => null,
  39. OrderStatusHistoryInterface::IS_CUSTOMER_NOTIFIED => 1,
  40. OrderStatusHistoryInterface::CREATED_AT => null,
  41. OrderStatusHistoryInterface::PARENT_ID => $order->getId(),
  42. OrderStatusHistoryInterface::ENTITY_NAME => null,
  43. OrderStatusHistoryInterface::STATUS => $order->getStatus(),
  44. OrderStatusHistoryInterface::IS_VISIBLE_ON_FRONT => 1,
  45. ];
  46. $requestData = ['id' => $order->getId(), 'statusHistory' => $commentData];
  47. $serviceInfo = [
  48. 'rest' => [
  49. 'resourcePath' => '/V1/orders/' . $order->getId() . '/comments',
  50. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
  51. ],
  52. 'soap' => [
  53. 'service' => self::SERVICE_READ_NAME,
  54. 'serviceVersion' => self::SERVICE_VERSION,
  55. 'operation' => self::SERVICE_READ_NAME . 'addComment',
  56. ],
  57. ];
  58. $this->_webApiCall($serviceInfo, $requestData);
  59. //Verification
  60. $comments = $order->load($order->getId())->getAllStatusHistory();
  61. $comment = reset($comments);
  62. $this->assertEquals(
  63. $commentData[OrderStatusHistoryInterface::COMMENT],
  64. $comment->getComment()
  65. );
  66. $this->assertEquals(
  67. $commentData[OrderStatusHistoryInterface::PARENT_ID],
  68. $comment->getParentId()
  69. );
  70. $this->assertEquals(
  71. $commentData[OrderStatusHistoryInterface::IS_CUSTOMER_NOTIFIED],
  72. $comment->getIsCustomerNotified()
  73. );
  74. $this->assertEquals(
  75. $commentData[OrderStatusHistoryInterface::IS_VISIBLE_ON_FRONT],
  76. $comment->getIsVisibleOnFront()
  77. );
  78. $this->assertEquals(
  79. $commentData[OrderStatusHistoryInterface::STATUS],
  80. $comment->getStatus()
  81. );
  82. }
  83. }