StoreSwitcherTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Store\Model;
  8. use Magento\Framework\ObjectManagerInterface as ObjectManager;
  9. use Magento\TestFramework\Helper\Bootstrap;
  10. class StoreSwitcherTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var StoreSwitcher
  14. */
  15. private $storeSwitcher;
  16. /**
  17. * @var ObjectManager
  18. */
  19. private $objectManager;
  20. /**
  21. * Class dependencies initialization
  22. *
  23. * @return void
  24. */
  25. protected function setUp()
  26. {
  27. $this->objectManager = Bootstrap::getObjectManager();
  28. $this->storeSwitcher = $this->objectManager->get(StoreSwitcher::class);
  29. }
  30. /**
  31. * @magentoDataFixture Magento/Store/_files/store.php
  32. * @magentoDataFixture Magento/Store/_files/second_store.php
  33. * @return void
  34. * @throws StoreSwitcher\CannotSwitchStoreException
  35. * @throws \Magento\Framework\Exception\NoSuchEntityException
  36. */
  37. public function testSwitch(): void
  38. {
  39. $redirectUrl = "http://domain.com/?SID=e5h3e086dce3ckkqt9ia7avl27&___store=fixture_second_store";
  40. $expectedUrl = "http://domain.com/";
  41. $fromStoreCode = 'test';
  42. /** @var \Magento\Store\Api\StoreRepositoryInterface $storeRepository */
  43. $storeRepository = $this->objectManager->create(\Magento\Store\Api\StoreRepositoryInterface::class);
  44. $fromStore = $storeRepository->get($fromStoreCode);
  45. $toStoreCode = 'fixture_second_store';
  46. /** @var \Magento\Store\Api\StoreRepositoryInterface $storeRepository */
  47. $storeRepository = $this->objectManager->create(\Magento\Store\Api\StoreRepositoryInterface::class);
  48. $toStore = $storeRepository->get($toStoreCode);
  49. $this->assertEquals($expectedUrl, $this->storeSwitcher->switch($fromStore, $toStore, $redirectUrl));
  50. }
  51. }