Fix #19770: Fix yii\mutex\MysqlMutex keyPrefix expression param binding

This commit is contained in:
Márton Somogyi
2023-02-27 12:45:33 +01:00
committed by GitHub
parent f388ca71b0
commit 51208fcb99
3 changed files with 56 additions and 7 deletions

View File

@ -84,4 +84,27 @@ class MysqlMutexTest extends DatabaseTestCase
$this->assertTrue($mutexOne->release($mutexName));
$this->assertTrue($mutexTwo->release($mutexName));
}
/**
* @dataProvider mutexDataProvider()
*
* @param string $mutexName
*/
public function testThatMutexLocksWithKeyPrefixesExpressionCalculatedValue($mutexName)
{
$mutexOne = $this->createMutex(['keyPrefix' => new Expression('1+1')]);
$mutexTwo = $this->createMutex(['keyPrefix' => new Expression('1*2')]);
$this->assertTrue($mutexOne->acquire($mutexName));
$this->assertFalse($mutexTwo->acquire($mutexName));
$this->assertTrue($mutexOne->release($mutexName));
}
public function testCreateMutex()
{
$mutex = $this->createMutex(['keyPrefix' => new Expression('1+1')]);
$this->assertInstanceOf(MysqlMutex::classname(), $mutex);
$this->assertInstanceOf(Expression::classname(), $mutex->keyPrefix);
$this->assertSame("1+1", $mutex->keyPrefix->expression);
}
}