NamespaceResolverTest.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Widget\Test\Unit\Model;
  7. class NamespaceResolverTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Widget\Model\NamespaceResolver
  11. */
  12. protected $namespaceResolver;
  13. /**
  14. * @var \Magento\Framework\Module\ModuleListInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $moduleListMock;
  17. protected function setUp()
  18. {
  19. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  20. $this->moduleListMock = $this->getMockBuilder(\Magento\Framework\Module\ModuleListInterface::class)
  21. ->getMockForAbstractClass();
  22. $this->namespaceResolver = $objectManager->getObject(
  23. \Magento\Widget\Model\NamespaceResolver::class,
  24. [
  25. 'moduleList' => $this->moduleListMock
  26. ]
  27. );
  28. }
  29. /**
  30. * @param string $namespace
  31. * @param array $modules
  32. * @param string $expected
  33. * @param bool $asFullModuleName
  34. *
  35. * @dataProvider determineOmittedNamespaceDataProvider
  36. */
  37. public function testDetermineOmittedNamespace($namespace, $modules, $expected, $asFullModuleName)
  38. {
  39. $this->moduleListMock->expects($this->once())
  40. ->method('getNames')
  41. ->willReturn($modules);
  42. $this->assertSame(
  43. $expected,
  44. $this->namespaceResolver->determineOmittedNamespace($namespace, $asFullModuleName)
  45. );
  46. }
  47. /**
  48. * @return array
  49. */
  50. public function determineOmittedNamespaceDataProvider()
  51. {
  52. return[
  53. [
  54. 'namespace' => \Magento\Widget\Test\Unit\Model\NamespaceResolverTest::class,
  55. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  56. 'expected' => 'Magento_Widget',
  57. 'asFullModuleName' => true
  58. ],
  59. [
  60. 'namespace' => \Magento\Widget\Test\Unit\Model\NamespaceResolverTest::class,
  61. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  62. 'expected' => 'magento_widget',
  63. 'asFullModuleName' => false
  64. ],
  65. [
  66. 'namespace' => 'Widget\Test\Unit\Model\NamespaceResolverTest',
  67. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  68. 'expected' => 'Magento_Widget',
  69. 'asFullModuleName' => true
  70. ],
  71. [
  72. 'namespace' => 'Widget\Test\Unit\Model\NamespaceResolverTest',
  73. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  74. 'expected' => 'widget',
  75. 'asFullModuleName' => false
  76. ],
  77. [
  78. 'namespace' => 'Unit\Model\NamespaceResolverTest',
  79. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  80. 'expected' => '',
  81. 'asFullModuleName' => true
  82. ],
  83. [
  84. 'namespace' => 'Unit\Model\NamespaceResolverTest',
  85. 'modules' => ['Magento_Cms', 'Magento_Catalog', 'Magento_Sales', 'Magento_Widget'],
  86. 'expected' => '',
  87. 'asFullModuleName' => false
  88. ],
  89. ];
  90. }
  91. }