TranslatorRegistryTest.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
  4. * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
  5. *
  6. * Licensed under The MIT License
  7. * For full copyright and license information, please see the LICENSE.txt
  8. * Redistributions of files must retain the above copyright notice
  9. *
  10. * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
  11. * @link https://cakephp.org CakePHP(tm) Project
  12. * @since 3.4.6
  13. * @license https://opensource.org/licenses/mit-license.php MIT License
  14. */
  15. namespace Cake\Test\TestCase\I18n;
  16. use Aura\Intl\BasicFormatter;
  17. use Aura\Intl\FormatterLocator;
  18. use Aura\Intl\Package;
  19. use Aura\Intl\PackageLocator;
  20. use Aura\Intl\TranslatorLocator;
  21. use Cake\I18n\Translator;
  22. use Cake\I18n\TranslatorFactory;
  23. use Cake\I18n\TranslatorRegistry;
  24. use Cake\TestSuite\TestCase;
  25. class TranslatorRegistryTest extends TestCase
  26. {
  27. /**
  28. * Test Package null initialization from cache
  29. */
  30. public function testGetNullPackageInitializationFromCache()
  31. {
  32. $translatorFactory = $this->getMockBuilder(TranslatorFactory::class)->getMock();
  33. $translatorLocator = $this->getMockBuilder(TranslatorLocator::class)->disableOriginalConstructor()->getMock();
  34. $packageLocator = $this->getMockBuilder(PackageLocator::class)->getMock();
  35. $package = $this->getMockBuilder(Package::class)->getMock();
  36. $formatter = $this->getMockBuilder(BasicFormatter::class)->getMock();
  37. $formatterLocator = $this->getMockBuilder(FormatterLocator::class)->getMock();
  38. $cacheEngineNullPackage = $this->getMockForAbstractClass('Cake\Cache\CacheEngine', [], '', true, true, true, ['read']);
  39. $translatorNullPackage = $this->getMockBuilder(Translator::class)->disableOriginalConstructor()->getMock();
  40. $translatorNonNullPackage = $this->getMockBuilder(Translator::class)->disableOriginalConstructor()->getMock();
  41. $translatorNonNullPackage
  42. ->method('getPackage')
  43. ->willReturn($package);
  44. $translatorFactory
  45. ->method('newInstance')
  46. ->willReturn($translatorNonNullPackage);
  47. $formatterLocator
  48. ->method('get')
  49. ->willReturn($formatter);
  50. $translatorLocator
  51. ->method('get')
  52. ->willReturn($formatter);
  53. $package
  54. ->method('getFormatter')
  55. ->willReturn('basic');
  56. $packageLocator->method('get')
  57. ->willReturn($package);
  58. $cacheEngineNullPackage
  59. ->method('read')
  60. ->willReturn($translatorNullPackage);
  61. $registry = new TranslatorRegistry($packageLocator, $formatterLocator, $translatorFactory, 'en_CA');
  62. $registry->setCacher($cacheEngineNullPackage);
  63. $this->assertNotNull($registry->get('default')->getPackage());
  64. }
  65. }