123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace App\Tests\Utils;
- use App\CommonMark\CachedMarkdownConverter;
- use App\CommonMark\MarkdownConverter;
- use PHPUnit\Framework\TestCase;
- use Psr\Cache\CacheItemInterface;
- use Psr\Cache\CacheItemPoolInterface;
- class CachedMarkdownConverterTest extends TestCase {
- public function testLoadFromCache() {
- $cacheItem = $this->createMock(CacheItemInterface::class);
- $cacheItem
- ->expects($this->once())
- ->method('isHit')
- ->willReturn(true);
- $cacheItem
- ->expects($this->never())
- ->method('set');
- $cacheItem
- ->expects($this->once())
- ->method('get')
- ->willReturn('html output');
- $cacheItemPool = $this->createMock(CacheItemPoolInterface::class);
- $cacheItemPool
- ->expects($this->once())
- ->method('getItem')
- ->with($this->equalTo(sprintf(
- 'cached_markdown.%s.%s',
- hash('sha256', 'markdown input'),
- hash('sha256', '{"base_path":"","open_external_links_in_new_tab":false}')
- )))
- ->willReturn($cacheItem);
- $cacheItemPool
- ->expects($this->never())
- ->method('saveDeferred');
- $converter = $this->createMock(MarkdownConverter::class);
- $converter
- ->expects($this->never())
- ->method('convertToHtml');
- /* @var \App\CommonMark\CachedMarkdownConverter $cachedConverter */
- $cachedConverter = $this->getMockBuilder(CachedMarkdownConverter::class)
- ->setConstructorArgs([$cacheItemPool, $converter])
- ->enableProxyingToOriginalMethods()
- ->getMock();
- $this->assertSame(
- 'html output',
- $cachedConverter->convertToHtml('markdown input')
- );
- }
- public function testSaveToCache() {
- $cacheItem = $this->createMock(CacheItemInterface::class);
- $cacheItem
- ->expects($this->once())
- ->method('isHit')
- ->willReturn(false);
- $cacheItem
- ->expects($this->once())
- ->method('set')
- ->with('html output');
- $cacheItem
- ->expects($this->once())
- ->method('get')
- ->willReturn('html output');
- $cacheItemPool = $this->createMock(CacheItemPoolInterface::class);
- $cacheItemPool
- ->expects($this->once())
- ->method('getItem')
- ->with($this->equalTo(sprintf(
- 'cached_markdown.%s.%s',
- hash('sha256', 'markdown input'),
- hash('sha256', '{"base_path":"","open_external_links_in_new_tab":false}')
- )))
- ->willReturn($cacheItem);
- $cacheItemPool
- ->expects($this->once())
- ->method('saveDeferred');
- $converter = $this->createMock(MarkdownConverter::class);
- $converter
- ->expects($this->once())
- ->method('convertToHtml')
- ->with(
- $this->equalTo('markdown input'),
- $this->equalTo([
- 'base_path' => '',
- 'open_external_links_in_new_tab' => false,
- ])
- )
- ->willReturn('html output');
- /* @var \App\CommonMark\CachedMarkdownConverter $cachedConverter */
- $cachedConverter = $this->getMockBuilder(CachedMarkdownConverter::class)
- ->setConstructorArgs([$cacheItemPool, $converter])
- ->enableProxyingToOriginalMethods()
- ->getMock();
- $this->assertSame(
- 'html output',
- $cachedConverter->convertToHtml('markdown input')
- );
- }
- }
|