1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Dbal;
use mysqli_result;
use PhpMyAdmin\Dbal\MysqliResult;
use PhpMyAdmin\Tests\AbstractTestCase;
/**
* @covers \PhpMyAdmin\Dbal\DbiMysqli
*/
#[\PHPUnit\Framework\Attributes\CoversClass(\PhpMyAdmin\Dbal\DbiMysqli::class)]
class MysqliResultTest extends AbstractTestCase
{
/**
* Test for fetchAssoc
*/
public function testFetchAssoc(): void
{
$expected = [['foo' => 'bar'], null];
$mysqliResult = $this->createMock(mysqli_result::class);
$mysqliResult->expects($this->exactly(2))
->method('fetch_assoc')
->willReturnOnConsecutiveCalls(...$expected);
$result = new MysqliResult($mysqliResult);
self::assertSame(['foo' => 'bar'], $result->fetchAssoc());
self::assertSame([], $result->fetchAssoc());
}
/**
* Test for fetchRow
*/
public function testFetchRow(): void
{
$expected = [['bar'], null];
$mysqliResult = $this->createMock(mysqli_result::class);
$mysqliResult->expects($this->exactly(2))
->method('fetch_row')
->willReturnOnConsecutiveCalls(...$expected);
$result = new MysqliResult($mysqliResult);
self::assertSame(['bar'], $result->fetchRow());
self::assertSame([], $result->fetchRow());
}
/**
* Test for seek
*/
public function testDataSeek(): void
{
$offset = 1;
$mysqliResult = $this->createMock(mysqli_result::class);
$mysqliResult->expects($this->once())
->method('data_seek')
->with($this->equalTo($offset))
->willReturn(true);
$result = new MysqliResult($mysqliResult);
self::assertTrue($result->seek($offset));
}
}
|