/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Database/DatabaseMySqlQueryGrammarTest.php
85 строк
3 KB
Jason McCreary
[13.x] Mockery cleanup (#61117)
10 авг 2026, 20:23
Не верифицирован
10 авг 2026, 20:23
2ee40ee
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Database; use Illuminate\Database\Connection; use Illuminate\Database\Query\Builder; use Illuminate\Database\Query\Grammars\MySqlGrammar; use Illuminate\Database\Query\Processors\Processor; use InvalidArgumentException; use Mockery; use PHPUnit\Framework\TestCase; class DatabaseMySqlQueryGrammarTest extends TestCase { public function testToRawSql() { $connection = Mockery::mock(Connection::class); $connection->expects('escape')->with('foo', false)->andReturn("'foo'"); $grammar = new MySqlGrammar($connection); $query = $grammar->substituteBindingsIntoRawSql( 'select * from "users" where \'Hello\\\'World?\' IS NOT NULL AND "email" = ?', ['foo'], ); $this->assertSame('select * from "users" where \'Hello\\\'World?\' IS NOT NULL AND "email" = \'foo\'', $query); } public function testTimeout() { $builder = $this->getBuilder(); $builder->select('*')->from('users')->where('email', 'like', '%test%')->timeout(60); $this->assertSame( 'select /*+ MAX_EXECUTION_TIME(60000) */ * from `users` where `email` like ?', $builder->toSql() ); } public function testTimeoutWithDistinct() { $builder = $this->getBuilder(); $builder->distinct()->select('*')->from('users')->timeout(30); $this->assertSame( 'select /*+ MAX_EXECUTION_TIME(30000) */ distinct * from `users`', $builder->toSql() ); } public function testTimeoutWithAggregate() { $builder = $this->getBuilder(); $builder->from('users')->timeout(10); $builder->aggregate = ['function' => 'count', 'columns' => ['*']]; $this->assertSame( 'select /*+ MAX_EXECUTION_TIME(10000) */ count(*) as `aggregate` from `users`', $builder->toSql() ); } public function testTimeoutNullRemovesTimeout() { $builder = $this->getBuilder(); $builder->select('*')->from('users')->timeout(60)->timeout(null); $this->assertSame('select * from `users`', $builder->toSql()); } public function testTimeoutThrowsExceptionForNegativeValue() { $this->expectException(InvalidArgumentException::class); $builder = $this->getBuilder(); $builder->select('*')->from('users')->timeout(-1); } protected function getBuilder() { $connection = Mockery::mock(Connection::class); $connection->shouldReceive('getDatabaseName')->andReturn('database'); $connection->shouldReceive('getTablePrefix')->andReturn(''); $grammar = new MySqlGrammar($connection); $processor = Mockery::mock(Processor::class); return new Builder($connection, $grammar, $processor); } }