1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace Illuminate\Tests\Console\Scheduling;
- use Illuminate\Console\Scheduling\CacheEventMutex;
- use Illuminate\Console\Scheduling\CacheSchedulingMutex;
- use Illuminate\Console\Scheduling\Event;
- use Illuminate\Contracts\Cache\Factory;
- use Illuminate\Contracts\Cache\Repository;
- use Illuminate\Support\Carbon;
- use Mockery as m;
- use PHPUnit\Framework\TestCase;
- class CacheSchedulingMutexTest extends TestCase
- {
- /**
- * @var \Illuminate\Console\Scheduling\CacheSchedulingMutex
- */
- protected $cacheMutex;
- /**
- * @var \Illuminate\Console\Scheduling\Event
- */
- protected $event;
- /**
- * @var \Illuminate\Support\Carbon
- */
- protected $time;
- /**
- * @var \Illuminate\Contracts\Cache\Factory
- */
- protected $cacheFactory;
- /**
- * @var \Illuminate\Contracts\Cache\Repository
- */
- protected $cacheRepository;
- protected function setUp(): void
- {
- parent::setUp();
- $this->cacheFactory = m::mock(Factory::class);
- $this->cacheRepository = m::mock(Repository::class);
- $this->cacheFactory->shouldReceive('store')->andReturn($this->cacheRepository);
- $this->cacheMutex = new CacheSchedulingMutex($this->cacheFactory);
- $this->event = new Event(new CacheEventMutex($this->cacheFactory), 'command');
- $this->time = Carbon::now();
- }
- public function testMutexReceivesCorrectCreate()
- {
- $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(true);
- $this->assertTrue($this->cacheMutex->create($this->event, $this->time));
- }
- public function testCanUseCustomConnection()
- {
- $this->cacheFactory->shouldReceive('store')->with('test')->andReturn($this->cacheRepository);
- $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(true);
- $this->cacheMutex->useStore('test');
- $this->assertTrue($this->cacheMutex->create($this->event, $this->time));
- }
- public function testPreventsMultipleRuns()
- {
- $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(false);
- $this->assertFalse($this->cacheMutex->create($this->event, $this->time));
- }
- public function testChecksForNonRunSchedule()
- {
- $this->cacheRepository->shouldReceive('has')->once()->with($this->event->mutexName().$this->time->format('Hi'))->andReturn(false);
- $this->assertFalse($this->cacheMutex->exists($this->event, $this->time));
- }
- public function testChecksForAlreadyRunSchedule()
- {
- $this->cacheRepository->shouldReceive('has')->with($this->event->mutexName().$this->time->format('Hi'))->andReturn(true);
- $this->assertTrue($this->cacheMutex->exists($this->event, $this->time));
- }
- }
|