ObserverTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\ProductAlert\Model;
  7. /**
  8. * @magentoAppIsolation enabled
  9. */
  10. class ObserverTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Framework\ObjectManagerInterface
  14. */
  15. protected $_objectManager;
  16. /**
  17. * @var \Magento\Customer\Model\Session
  18. */
  19. protected $_customerSession;
  20. /**
  21. * @var \Magento\Customer\Helper\View
  22. */
  23. protected $_customerViewHelper;
  24. public function setUp()
  25. {
  26. $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  27. $this->_customerSession = $this->_objectManager->get(
  28. \Magento\Customer\Model\Session::class
  29. );
  30. $service = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  31. \Magento\Customer\Api\AccountManagementInterface::class
  32. );
  33. $customer = $service->authenticate('customer@example.com', 'password');
  34. $this->_customerSession->setCustomerDataAsLoggedIn($customer);
  35. $this->_customerViewHelper = $this->_objectManager->create(\Magento\Customer\Helper\View::class);
  36. }
  37. /**
  38. * @magentoConfigFixture current_store catalog/productalert/allow_price 1
  39. *
  40. * @magentoDataFixture Magento/ProductAlert/_files/product_alert.php
  41. */
  42. public function testProcess()
  43. {
  44. \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND);
  45. $observer = $this->_objectManager->get(\Magento\ProductAlert\Model\Observer::class);
  46. $observer->process();
  47. /** @var \Magento\TestFramework\Mail\Template\TransportBuilderMock $transportBuilder */
  48. $transportBuilder = $this->_objectManager->get(
  49. \Magento\TestFramework\Mail\Template\TransportBuilderMock::class
  50. );
  51. $this->assertContains(
  52. 'John Smith,',
  53. $transportBuilder->getSentMessage()->getRawMessage()
  54. );
  55. }
  56. }