CaseManagementTest.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Signifyd\Model;
  7. use Magento\Framework\Api\SearchCriteriaBuilder;
  8. use Magento\Framework\App\ObjectManager;
  9. use Magento\Sales\Api\Data\OrderInterface;
  10. use Magento\Sales\Api\OrderRepositoryInterface;
  11. use Magento\Signifyd\Api\Data\CaseInterface;
  12. use Magento\TestFramework\Helper\Bootstrap;
  13. /**
  14. * Contains test methods for case management service
  15. */
  16. class CaseManagementTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /**
  19. * @var CaseManagement
  20. */
  21. private $caseManagement;
  22. /**
  23. * @var ObjectManager
  24. */
  25. private $objectManager;
  26. protected function setup()
  27. {
  28. $this->objectManager = Bootstrap::getObjectManager();
  29. $this->caseManagement = $this->objectManager->get(CaseManagement::class);
  30. }
  31. /**
  32. * @covers \Magento\Signifyd\Model\CaseManagement::create
  33. * @magentoDataFixture Magento/Signifyd/_files/order_with_customer_and_two_simple_products.php
  34. */
  35. public function testCreate()
  36. {
  37. $order = $this->getOrder();
  38. $case = $this->caseManagement->create($order->getEntityId());
  39. self::assertNotEmpty($case->getEntityId());
  40. self::assertEquals(CaseInterface::STATUS_PENDING, $case->getStatus());
  41. self::assertEquals(CaseInterface::GUARANTEE_PENDING, $case->getGuaranteeDisposition());
  42. }
  43. /**
  44. * @covers \Magento\Signifyd\Model\CaseManagement::getByOrderId
  45. * @magentoDataFixture Magento/Signifyd/_files/case.php
  46. */
  47. public function testGetByOrderId()
  48. {
  49. $order = $this->getOrder();
  50. $case = $this->caseManagement->getByOrderId($order->getEntityId());
  51. self::assertEquals(CaseInterface::STATUS_PROCESSING, $case->getStatus());
  52. self::assertEquals(CaseInterface::DISPOSITION_GOOD, $case->getReviewDisposition());
  53. self::assertEquals('2016-12-12 15:17:17', $case->getCreatedAt());
  54. self::assertEquals('2016-12-12 19:23:16', $case->getUpdatedAt());
  55. }
  56. /**
  57. * Get stored order
  58. * @return OrderInterface
  59. */
  60. private function getOrder()
  61. {
  62. /** @var SearchCriteriaBuilder $searchCriteriaBuilder */
  63. $searchCriteriaBuilder = $this->objectManager->get(SearchCriteriaBuilder::class);
  64. $searchCriteria = $searchCriteriaBuilder->addFilter(OrderInterface::INCREMENT_ID, '100000001')
  65. ->create();
  66. $orderRepository = $this->objectManager->get(OrderRepositoryInterface::class);
  67. $orders = $orderRepository->getList($searchCriteria)
  68. ->getItems();
  69. /** @var OrderInterface $order */
  70. return array_pop($orders);
  71. }
  72. }