123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace Illuminate\Tests\Cache;
- use Illuminate\Cache\ApcStore;
- use Illuminate\Cache\ApcWrapper;
- use PHPUnit\Framework\TestCase;
- class CacheApcStoreTest extends TestCase
- {
- public function testGetReturnsNullWhenNotFound()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock();
- $apc->expects($this->once())->method('get')->with($this->equalTo('foobar'))->willReturn(null);
- $store = new ApcStore($apc, 'foo');
- $this->assertNull($store->get('bar'));
- }
- public function testAPCValueIsReturned()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock();
- $apc->expects($this->once())->method('get')->willReturn('bar');
- $store = new ApcStore($apc);
- $this->assertSame('bar', $store->get('foo'));
- }
- public function testGetMultipleReturnsNullWhenNotFoundAndValueWhenFound()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock();
- $apc->expects($this->exactly(3))->method('get')->willReturnMap([
- ['foo', 'qux'],
- ['bar', null],
- ['baz', 'norf'],
- ]);
- $store = new ApcStore($apc);
- $this->assertEquals([
- 'foo' => 'qux',
- 'bar' => null,
- 'baz' => 'norf',
- ], $store->many(['foo', 'bar', 'baz']));
- }
- public function testSetMethodProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['put'])->getMock();
- $apc->expects($this->once())
- ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(60))
- ->willReturn(true);
- $store = new ApcStore($apc);
- $result = $store->put('foo', 'bar', 60);
- $this->assertTrue($result);
- }
- public function testSetMultipleMethodProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['put'])->getMock();
- $apc->expects($this->exactly(3))->method('put')->withConsecutive([
- $this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(60),
- ], [
- $this->equalTo('baz'), $this->equalTo('qux'), $this->equalTo(60),
- ], [
- $this->equalTo('bar'), $this->equalTo('norf'), $this->equalTo(60),
- ])->willReturn(true);
- $store = new ApcStore($apc);
- $result = $store->putMany([
- 'foo' => 'bar',
- 'baz' => 'qux',
- 'bar' => 'norf',
- ], 60);
- $this->assertTrue($result);
- }
- public function testIncrementMethodProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['increment'])->getMock();
- $apc->expects($this->once())->method('increment')->with($this->equalTo('foo'), $this->equalTo(5));
- $store = new ApcStore($apc);
- $store->increment('foo', 5);
- }
- public function testDecrementMethodProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['decrement'])->getMock();
- $apc->expects($this->once())->method('decrement')->with($this->equalTo('foo'), $this->equalTo(5));
- $store = new ApcStore($apc);
- $store->decrement('foo', 5);
- }
- public function testStoreItemForeverProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['put'])->getMock();
- $apc->expects($this->once())
- ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(0))
- ->willReturn(true);
- $store = new ApcStore($apc);
- $result = $store->forever('foo', 'bar');
- $this->assertTrue($result);
- }
- public function testForgetMethodProperlyCallsAPC()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['delete'])->getMock();
- $apc->expects($this->once())->method('delete')->with($this->equalTo('foo'))->willReturn(true);
- $store = new ApcStore($apc);
- $result = $store->forget('foo');
- $this->assertTrue($result);
- }
- public function testFlushesCached()
- {
- $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['flush'])->getMock();
- $apc->expects($this->once())->method('flush')->willReturn(true);
- $store = new ApcStore($apc);
- $result = $store->flush();
- $this->assertTrue($result);
- }
- }
|