CreditmemoGetTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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\TestFramework\TestCase\WebapiAbstract;
  8. /**
  9. * Class CreditmemoGetTest
  10. */
  11. class CreditmemoGetTest extends WebapiAbstract
  12. {
  13. /**
  14. * Resource path
  15. */
  16. const RESOURCE_PATH = '/V1/creditmemo';
  17. /**
  18. * Service read name
  19. */
  20. const SERVICE_READ_NAME = 'salesCreditmemoRepositoryV1';
  21. /**
  22. * Service version
  23. */
  24. const SERVICE_VERSION = 'V1';
  25. /**
  26. * Creditmemo id
  27. */
  28. const CREDITMEMO_INCREMENT_ID = '100000001';
  29. /**
  30. * @var \Magento\Framework\ObjectManagerInterface
  31. */
  32. protected $objectManager;
  33. /**
  34. * Required fields are in the answer
  35. *
  36. * @var array
  37. */
  38. protected $requiredFields = [
  39. 'entity_id',
  40. 'store_id',
  41. 'base_shipping_tax_amount',
  42. 'base_discount_amount',
  43. 'grand_total',
  44. 'base_subtotal_incl_tax',
  45. 'shipping_amount',
  46. 'subtotal_incl_tax',
  47. 'base_shipping_amount',
  48. 'base_adjustment',
  49. 'base_subtotal',
  50. 'discount_amount',
  51. 'subtotal',
  52. 'adjustment',
  53. 'base_grand_total',
  54. 'base_tax_amount',
  55. 'shipping_tax_amount',
  56. 'tax_amount',
  57. 'order_id',
  58. 'state',
  59. 'increment_id',
  60. ];
  61. /**
  62. * Set up
  63. */
  64. protected function setUp()
  65. {
  66. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  67. }
  68. /**
  69. * Test creditmemo get service
  70. *
  71. * @magentoApiDataFixture Magento/Sales/_files/creditmemo_for_get.php
  72. */
  73. public function testCreditmemoGet()
  74. {
  75. /** @var \Magento\Sales\Model\ResourceModel\Order\Creditmemo\Collection $creditmemoCollection */
  76. $creditmemoCollection =
  77. $this->objectManager->get(\Magento\Sales\Model\ResourceModel\Order\Creditmemo\Collection::class);
  78. $creditmemo = $creditmemoCollection->getFirstItem();
  79. $serviceInfo = [
  80. 'rest' => [
  81. 'resourcePath' => self::RESOURCE_PATH . '/' . $creditmemo->getId(),
  82. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
  83. ],
  84. 'soap' => [
  85. 'service' => self::SERVICE_READ_NAME,
  86. 'serviceVersion' => self::SERVICE_VERSION,
  87. 'operation' => self::SERVICE_READ_NAME . 'get',
  88. ],
  89. ];
  90. $actual = $this->_webApiCall($serviceInfo, ['id' => $creditmemo->getId()]);
  91. $expected = $creditmemo->getData();
  92. foreach ($this->requiredFields as $field) {
  93. $this->assertArrayHasKey($field, $actual);
  94. $this->assertEquals($expected[$field], $actual[$field]);
  95. }
  96. //check that nullable fields were marked as optional and were not sent
  97. foreach ($actual as $value) {
  98. $this->assertNotNull($value);
  99. }
  100. }
  101. }