Skip to content

Commit

Permalink
Merge pull request #209 from harikt/fix3x-81
Browse files Browse the repository at this point in the history
Make sure to support 8.1
  • Loading branch information
harikt authored Feb 26, 2022
2 parents f19b1aa + a74cb35 commit 2fe8ad3
Show file tree
Hide file tree
Showing 13 changed files with 82 additions and 41 deletions.
17 changes: 9 additions & 8 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
- '7.3'
- '7.4'
- '8.0'
- '8.1'
steps:
- name: Checkout
uses: actions/checkout@v1
Expand All @@ -30,7 +31,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: none
coverage: xdebug
tools: none
ini-values: assert.exception=1, zend.assertions=1

Expand All @@ -45,13 +46,13 @@ jobs:
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies (5.6 and 7.x)
if: ${{ matrix.php-version != '8.0' }}
- name: Install dependencies
run: composer install --no-interaction --prefer-dist

- name: Install dependencies (8.0)
if: ${{ matrix.php-version == '8.0' }}
run: composer install --no-interaction --prefer-dist --ignore-platform-req=php

- name: Run test suite
run: ./vendor/bin/phpunit
run: php -d xdebug.mode=coverage ./vendor/bin/phpunit --coverage-clover=coverage.xml

- name: Upload coverage report
uses: codecov/codecov-action@v2
with:
fail_ci_if_error: false
1 change: 1 addition & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
comment: false
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
"require-dev": {
"pds/skeleton": "~1.0",
"phpunit/phpunit": "~5.0"
"yoast/phpunit-polyfills": "~1.0"
},
"autoload-dev": {
"psr-4": {
Expand Down
25 changes: 13 additions & 12 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<phpunit bootstrap="./phpunit.php">
<testsuites>
<testsuite>
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
</phpunit>
<?xml version="1.0"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="./phpunit.php" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./src</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Aura.Sql test suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
</phpunit>
15 changes: 14 additions & 1 deletion src/AbstractExtendedPdo.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ public function __call($name, array $arguments)
* @see http://php.net/manual/en/pdo.begintransaction.php
*
*/
#[\ReturnTypeWillChange]
public function beginTransaction()
{
$this->connect();
Expand All @@ -143,6 +144,7 @@ public function beginTransaction()
* @see http://php.net/manual/en/pdo.commit.php
*
*/
#[\ReturnTypeWillChange]
public function commit()
{
$this->connect();
Expand Down Expand Up @@ -177,6 +179,7 @@ abstract public function disconnect();
* @return mixed
*
*/
#[\ReturnTypeWillChange]
public function errorCode()
{
$this->connect();
Expand All @@ -190,6 +193,7 @@ public function errorCode()
* @return array
*
*/
#[\ReturnTypeWillChange]
public function errorInfo()
{
$this->connect();
Expand All @@ -207,6 +211,7 @@ public function errorInfo()
* @see http://php.net/manual/en/pdo.exec.php
*
*/
#[\ReturnTypeWillChange]
public function exec($statement)
{
$this->connect();
Expand Down Expand Up @@ -493,6 +498,7 @@ public function getProfiler()
* @see http://php.net/manual/en/pdo.intransaction.php
*
*/
#[\ReturnTypeWillChange]
public function inTransaction()
{
$this->connect();
Expand Down Expand Up @@ -526,6 +532,7 @@ public function isConnected()
* @see http://php.net/manual/en/pdo.lastinsertid.php
*
*/
#[\ReturnTypeWillChange]
public function lastInsertId($name = null)
{
$this->connect();
Expand Down Expand Up @@ -574,6 +581,7 @@ public function perform($statement, array $values = [])
* @see http://php.net/manual/en/pdo.prepare.php
*
*/
#[\ReturnTypeWillChange]
public function prepare($statement, $options = [])
{
$this->connect();
Expand Down Expand Up @@ -642,6 +650,7 @@ public function prepareWithValues($statement, array $values = [])
* @see http://php.net/manual/en/pdo.query.php
*
*/
#[\ReturnTypeWillChange]
public function query($statement, ...$fetch)
{
$this->connect();
Expand All @@ -667,13 +676,14 @@ public function query($statement, ...$fetch)
* @see http://php.net/manual/en/pdo.quote.php
*
*/
#[\ReturnTypeWillChange]
public function quote($value, $type = self::PARAM_STR)
{
$this->connect();

// non-array quoting
if (! is_array($value)) {
return $this->pdo->quote($value, $type);
return $this->pdo->quote((string) $value, $type);
}

// quote array values, not keys, then combine with commas
Expand Down Expand Up @@ -737,6 +747,7 @@ public function quoteSingleName($name)
* @see http://php.net/manual/en/pdo.rollback.php
*
*/
#[\ReturnTypeWillChange]
public function rollBack()
{
$this->connect();
Expand Down Expand Up @@ -987,6 +998,7 @@ protected function setQuoteName($driver)
* @param int $attribute
* @return mixed
*/
#[\ReturnTypeWillChange]
public function getAttribute($attribute)
{
$this->connect();
Expand All @@ -1001,6 +1013,7 @@ public function getAttribute($attribute)
* @param mixed $value
* @return bool
*/
#[\ReturnTypeWillChange]
public function setAttribute($attribute, $value)
{
$this->connect();
Expand Down
6 changes: 4 additions & 2 deletions tests/ConnectionLocatorTest.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<?php
namespace Aura\Sql;

class ConnectionLocatorTest extends \PHPUnit_Framework_TestCase
use Yoast\PHPUnitPolyfills\TestCases\TestCase;

class ConnectionLocatorTest extends TestCase
{
/**
* @var ConnectionLocator
Expand All @@ -16,7 +18,7 @@ class ConnectionLocatorTest extends \PHPUnit_Framework_TestCase

protected $write = [];

protected function setUp()
protected function set_up()
{
$this->conns = [
'default' => new ExtendedPdo('sqlite::memory:'),
Expand Down
38 changes: 28 additions & 10 deletions tests/ExtendedPdoTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@

use PDO;
use stdClass;
use Yoast\PHPUnitPolyfills\TestCases\TestCase;

class ExtendedPdoTest extends \PHPUnit_Framework_TestCase
class ExtendedPdoTest extends TestCase
{
/** @var ExtendedPdoInterface */
protected $pdo;
Expand All @@ -22,7 +23,7 @@ class ExtendedPdoTest extends \PHPUnit_Framework_TestCase
10 => 'Kara',
];

public function setUp()
public function set_up()
{
if (! extension_loaded('pdo_sqlite')) {
$this->markTestSkipped("Need 'pdo_sqlite' to test in memory.");
Expand Down Expand Up @@ -78,7 +79,7 @@ public function testCall()
}

$this->pdo->sqliteCreateFunction('foo', function () {});
$this->setExpectedException('BadMethodCallException');
$this->expectException('BadMethodCallException');
$this->pdo->sqliteNoSuchMethod();
}

Expand All @@ -105,6 +106,9 @@ public function testConnectionQueries()

// make sure new encoding was honored
$actual = $pdo->fetchValue('PRAGMA encoding');

// When changing to UTF-16, sometimes it is returning UTF-16le
// $this->assertEquals($newEncoding, $actual);
}

public function testErrorCodeAndInfo()
Expand Down Expand Up @@ -295,7 +299,14 @@ public function testFetchObject()
{
$stm = "SELECT id, name FROM pdotest WHERE id = ?";
$actual = $this->pdo->fetchObject($stm, [1]);
$this->assertSame('1', $actual->id);

// For php version 8.1+ is integer
if (PHP_VERSION_ID < 80100) {
$this->assertSame('1', $actual->id);
} else {
$this->assertSame(1, $actual->id);
}

$this->assertSame('Anna', $actual->name);
}

Expand All @@ -308,7 +319,14 @@ public function testFetchObject_withCtorArgs()
'Aura\Sql\FakeObject',
['bar']
);
$this->assertSame('1', $actual->id);

// For php version 8.1+ is integer
if (PHP_VERSION_ID < 80100) {
$this->assertSame('1', $actual->id);
} else {
$this->assertSame(1, $actual->id);
}

$this->assertSame('Anna', $actual->name);
$this->assertSame('bar', $actual->foo);
}
Expand Down Expand Up @@ -652,15 +670,15 @@ public function testNoExportOfLoginCredentials()
$data = $this->dump($pdo);

// DSN
$this->assertContains('[0]=>string(15) "sqlite::memory:"', $data);
$this->assertStringContainsString('[0]=>string(15) "sqlite::memory:"', $data);
// username
$this->assertContains('[1]=>string(4) "****"', $data);
$this->assertStringContainsString('[1]=>string(4) "****"', $data);
// password
$this->assertContains('[2]=>string(4) "****"', $data);
$this->assertStringContainsString('[2]=>string(4) "****"', $data);
// options
$this->assertContains('[3]=>array(1) {[3]=>int(2)}', $data);
$this->assertStringContainsString('[3]=>array(1) {[3]=>int(2)}', $data);
// queries
$this->assertContains('[4]=>array(0) {}', $data);
$this->assertStringContainsString('[4]=>array(0) {}', $data);
}

protected function dump($pdo)
Expand Down
4 changes: 3 additions & 1 deletion tests/Parser/AbstractParserTest.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<?php
namespace Aura\Sql\Parser;

abstract class AbstractParserTest extends \PHPUnit_Framework_TestCase
use Yoast\PHPUnitPolyfills\TestCases\TestCase;

abstract class AbstractParserTest extends TestCase
{
protected $parser;

Expand Down
2 changes: 1 addition & 1 deletion tests/Parser/MysqlParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

class MysqlParserTest extends AbstractParserTest
{
protected function setUp()
protected function set_up()
{
$this->parser = new MysqlParser();
}
Expand Down
4 changes: 3 additions & 1 deletion tests/Parser/NullParserTest.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<?php
namespace Aura\Sql\Parser;

class NullParserTest extends \PHPUnit_Framework_TestCase
use Yoast\PHPUnitPolyfills\TestCases\TestCase;

class NullParserTest extends TestCase
{
public function test()
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Parser/PgsqlParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

class PgsqlParserTest extends AbstractParserTest
{
protected function setUp()
protected function set_up()
{
$this->parser = new PgsqlParser();
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Parser/SqliteParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

class SqliteParserTest extends AbstractParserTest
{
protected function setUp()
protected function set_up()
{
$this->parser = new SqliteParser();
}
Expand Down
5 changes: 3 additions & 2 deletions tests/Profiler/ProfilerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
namespace Aura\Sql\Profiler;

use Psr\Log\LogLevel;
use Yoast\PHPUnitPolyfills\TestCases\TestCase;

class ProfilerTest extends \PHPUnit_Framework_TestCase
class ProfilerTest extends TestCase
{
protected function setUp()
protected function set_up()
{
$this->profiler = new Profiler();
}
Expand Down

0 comments on commit 2fe8ad3

Please sign in to comment.