diff --git a/tests/ReflectorFactory.php b/tests/ReflectorFactory.php index f322ab146..16af4a48b 100644 --- a/tests/ReflectorFactory.php +++ b/tests/ReflectorFactory.php @@ -13,6 +13,7 @@ final class ReflectorFactory { public static function create(string $cacheFile): QueryReflector { + // handle defaults if (false !== getenv('GITHUB_ACTION')) { $host = getenv('DBA_HOST') ?: '127.0.0.1'; $user = getenv('DBA_USER') ?: 'root'; @@ -27,6 +28,10 @@ public static function create(string $cacheFile): QueryReflector $mode = getenv('DBA_MODE') ?: 'recording'; $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; + + // make env vars available to tests, in case non are defined yet + putenv('DBA_REFLECTOR='.$reflector); + if ('recording' === $mode) { if ('mysqli' === $reflector) { $mysqli = @new mysqli($host, $user, $password, $dbname); diff --git a/tests/rules/PdoStatementExecuteMethodRuleTest.php b/tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php similarity index 94% rename from tests/rules/PdoStatementExecuteMethodRuleTest.php rename to tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php index 1de3bd308..23b93a7df 100644 --- a/tests/rules/PdoStatementExecuteMethodRuleTest.php +++ b/tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class PdoStatementExecuteMethodRuleTest extends AbstractServiceAwareRuleTestCase +class PdoStatementExecuteMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testParameterErrors(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/pdo-stmt-execute-error.php'; $this->analyse([__DIR__.'/data/pdo-stmt-execute-error.php'], [ diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php similarity index 93% rename from tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php rename to tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php index 49c81dfaa..a4e2b5dfa 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInPreparedStatementMethodRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-prepared-statement.php'; $this->analyse([__DIR__.'/data/syntax-error-in-prepared-statement.php'], [ diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php similarity index 86% rename from tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php rename to tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php index 50dc49e31..5b65bcff1 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInPreparedStatementMethodSubclassedRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-method-subclassed.php'; $this->analyse([__DIR__.'/data/syntax-error-in-method-subclassed.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php b/tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php similarity index 85% rename from tests/rules/SyntaxErrorInQueryFunctionRuleTest.php rename to tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php index fdcdf582e..863105719 100644 --- a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryFunctionRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryFunctionRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-query-function.php'; $this->analyse([__DIR__.'/data/syntax-error-in-query-function.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php similarity index 92% rename from tests/rules/SyntaxErrorInQueryMethodRuleTest.php rename to tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php index 7ebc4b521..075b05622 100644 --- a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryMethodRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-query-method.php'; $this->analyse([__DIR__.'/data/syntax-error-in-query-method.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php similarity index 83% rename from tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php rename to tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php index b3e550780..564122a73 100644 --- a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryMethodSubclassedRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-method-subclassed.php'; $this->analyse([__DIR__.'/data/syntax-error-in-method-subclassed.php'], [ diff --git a/tests/rules/UnresolvablePdoStatementRuleTest.php b/tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php similarity index 85% rename from tests/rules/UnresolvablePdoStatementRuleTest.php rename to tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php index 158695228..125a0f28f 100644 --- a/tests/rules/UnresolvablePdoStatementRuleTest.php +++ b/tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvablePdoStatementRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvablePdoStatementRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-pdo-statement.php'; $this->analyse([__DIR__.'/data/unresolvable-pdo-statement.php'], [ diff --git a/tests/rules/UnresolvablePreparedStatementRuleTest.php b/tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php similarity index 84% rename from tests/rules/UnresolvablePreparedStatementRuleTest.php rename to tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php index 38240bf3b..0369ccacb 100644 --- a/tests/rules/UnresolvablePreparedStatementRuleTest.php +++ b/tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvablePreparedStatementRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvablePreparedStatementRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-statement.php'; $this->analyse([__DIR__.'/data/unresolvable-statement.php'], [ diff --git a/tests/rules/UnresolvableQueryFunctionRuleTest.php b/tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php similarity index 86% rename from tests/rules/UnresolvableQueryFunctionRuleTest.php rename to tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php index 5ce86e2e5..ff6358007 100644 --- a/tests/rules/UnresolvableQueryFunctionRuleTest.php +++ b/tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvableQueryFunctionRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvableQueryFunctionRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-query-in-function.php'; $this->analyse([__DIR__.'/data/unresolvable-query-in-function.php'], [ diff --git a/tests/rules/UnresolvableQueryMethodRuleTest.php b/tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php similarity index 86% rename from tests/rules/UnresolvableQueryMethodRuleTest.php rename to tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php index 8cb78ad07..4d3b230e0 100644 --- a/tests/rules/UnresolvableQueryMethodRuleTest.php +++ b/tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvableQueryMethodRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvableQueryMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-query-in-method.php'; $this->analyse([__DIR__.'/data/unresolvable-query-in-method.php'], [