コード例 #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $decorator = new Decorator(new TestService(), 'test_service');
     $lock = new Lock();
     $lock->setDriver(new File('lock'))->setMethod('sleep');
     $decorator->addLock($lock);
     $decorator->sleep((int) $input->getOption('seconds'));
     $output->write('done');
 }
コード例 #2
0
 public function testLogger()
 {
     $decorator = new Decorator(new TestService(), 'test_service');
     $lock = new Lock();
     $lock->setDriver(new Debug())->setMethod('doNothing');
     $decorator->addLock($lock);
     $logger = new TestLogger();
     $decorator->setLogger($logger);
     $decorator->doNothing();
     $this->assertEquals($this->expectedLogs, $logger->getLogs());
 }
コード例 #3
0
 public function testFileDriverWithArrayArgument()
 {
     $fileLock = new File('lock');
     $fileLock->clearLocks();
     $p = new Process('/usr/bin/php Tests/FileLockCommand.php test:file -s 1');
     $p->start();
     $decorator = new Decorator(new TestService(), 'test_service');
     $lock = new Lock();
     $lock->setDriver($fileLock)->setMethod('sleep')->setArgumentIndex(1);
     $decorator->addLock($lock);
     $decorator->sleep(1, array(1));
     $p->stop();
     return $this->assertTrue(true);
 }