SupportNamespacedItemResolverTest.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace Illuminate\Tests\Support;
  3. use Illuminate\Support\NamespacedItemResolver;
  4. use PHPUnit\Framework\TestCase;
  5. class SupportNamespacedItemResolverTest extends TestCase
  6. {
  7. public function testResolution()
  8. {
  9. $r = new NamespacedItemResolver;
  10. $this->assertEquals(['foo', 'bar', 'baz'], $r->parseKey('foo::bar.baz'));
  11. $this->assertEquals(['foo', 'bar', null], $r->parseKey('foo::bar'));
  12. $this->assertEquals([null, 'bar', 'baz'], $r->parseKey('bar.baz'));
  13. $this->assertEquals([null, 'bar', null], $r->parseKey('bar'));
  14. }
  15. public function testParsedItemsAreCached()
  16. {
  17. $r = $this->getMockBuilder(NamespacedItemResolver::class)->onlyMethods(['parseBasicSegments', 'parseNamespacedSegments'])->getMock();
  18. $r->setParsedKey('foo.bar', ['foo']);
  19. $r->expects($this->never())->method('parseBasicSegments');
  20. $r->expects($this->never())->method('parseNamespacedSegments');
  21. $this->assertEquals(['foo'], $r->parseKey('foo.bar'));
  22. }
  23. public function testParsedItemsMayBeFlushed()
  24. {
  25. $r = $this->getMockBuilder(NamespacedItemResolver::class)->onlyMethods(['parseBasicSegments', 'parseNamespacedSegments'])->getMock();
  26. $r->expects($this->once())->method('parseBasicSegments')->will(
  27. $this->returnValue(['bar'])
  28. );
  29. $r->setParsedKey('foo.bar', ['foo']);
  30. $r->flushParsedKeys();
  31. $this->assertEquals(['bar'], $r->parseKey('foo.bar'));
  32. }
  33. }