| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace Tests\Unit;
- use App\Services\PointsStatsService;
- use Tests\TestCase;
- class PointsStatsServiceNicknameSearchTest extends TestCase
- {
- /**
- * 反射调用 buildStatsQuery,返回查询构建器。
- */
- private function buildQuery(array $params, array $groupBy = ['uid'])
- {
- app()->instance('siteData', ['role' => 'superadmin', 'cpid' => 0]);
- $service = new PointsStatsService();
- $method = new \ReflectionMethod($service, 'buildStatsQuery');
- $method->setAccessible(true);
- [$query] = $method->invoke($service, $params, $groupBy);
- return $query;
- }
- public function testNicknameParamAddsNicknameAndAccountLikeConditions()
- {
- $query = $this->buildQuery(['nickname' => 'Fenzu5']);
- $sql = $query->toSql();
- $this->assertStringContainsString('`u`.`nickname` like ?', $sql);
- $this->assertStringContainsString('`u`.`account` like ?', $sql);
- $this->assertContains('%Fenzu5%', $query->getBindings());
- }
- public function testEmptyNicknameParamDoesNotAddLikeConditions()
- {
- $query = $this->buildQuery(['nickname' => '']);
- $sql = $query->toSql();
- $this->assertStringNotContainsString('`u`.`nickname` like ?', $sql);
- $this->assertStringNotContainsString('`u`.`account` like ?', $sql);
- }
- }
|