SubscriberTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Newsletter\Model\ResourceModel;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. class SubscriberTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Newsletter\Model\ResourceModel\Subscriber
  12. */
  13. protected $_resourceModel;
  14. protected function setUp()
  15. {
  16. $this->_resourceModel = Bootstrap::getObjectManager()
  17. ->create(\Magento\Newsletter\Model\ResourceModel\Subscriber::class);
  18. }
  19. /**
  20. * @magentoDataFixture Magento/Newsletter/_files/subscribers.php
  21. */
  22. public function testLoadByCustomerDataWithCustomerId()
  23. {
  24. /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */
  25. $customerRepository = Bootstrap::getObjectManager()
  26. ->create(\Magento\Customer\Api\CustomerRepositoryInterface::class);
  27. $customerData = $customerRepository->getById(1);
  28. $result = $this->_resourceModel->loadByCustomerData($customerData);
  29. $this->assertEquals(1, $result['customer_id']);
  30. $this->assertEquals('customer@example.com', $result['subscriber_email']);
  31. }
  32. /**
  33. * @magentoDataFixture Magento/Newsletter/_files/subscribers.php
  34. * @magentoDataFixture Magento/Customer/_files/two_customers.php
  35. */
  36. public function testLoadByCustomerDataWithoutCustomerId()
  37. {
  38. /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */
  39. $customerRepository = Bootstrap::getObjectManager()
  40. ->create(\Magento\Customer\Api\CustomerRepositoryInterface::class);
  41. $customerData = $customerRepository->getById(2);
  42. $result = $this->_resourceModel->loadByCustomerData($customerData);
  43. $this->assertEquals(0, $result['customer_id']);
  44. $this->assertEquals('customer_two@example.com', $result['subscriber_email']);
  45. }
  46. }