123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace Illuminate\Tests\Integration\Cache;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\Cache;
- use Orchestra\Testbench\TestCase;
- class NoLockTest extends TestCase
- {
- /**
- * Define environment setup.
- *
- * @param \Illuminate\Foundation\Application $app
- * @return void
- */
- protected function getEnvironmentSetUp($app)
- {
- $app['config']->set('cache.default', 'null');
- $app['config']->set('cache.stores', [
- 'null' => [
- 'driver' => 'null',
- ],
- ]);
- }
- public function testLocksCanAlwaysBeAcquiredAndReleased()
- {
- Cache::lock('foo')->forceRelease();
- $lock = Cache::lock('foo', 10);
- $this->assertTrue($lock->get());
- $this->assertTrue(Cache::lock('foo', 10)->get());
- $this->assertTrue($lock->release());
- $this->assertTrue($lock->release());
- }
- public function testLocksCanBlockForSeconds()
- {
- Carbon::setTestNow();
- Cache::lock('foo')->forceRelease();
- $this->assertSame('taylor', Cache::lock('foo', 10)->block(1, function () {
- return 'taylor';
- }));
- Cache::lock('foo')->forceRelease();
- $this->assertTrue(Cache::lock('foo', 10)->block(1));
- }
- }
|