From db00e383106c40c4c271ac5ca6b5fcaf9a455d7f Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 3 Feb 2022 10:27:36 +0100 Subject: [PATCH 1/2] move testsuite into "default" folder --- .phpunit-phpstan-dba.cache | 124 ------------------ composer.json | 4 +- phpstan.neon.dist | 2 +- phpunit.xml | 2 +- src/QueryReflection/QuerySimulation.php | 2 +- tests/{ => default}/DbaInferenceTest.php | 4 +- tests/{ => default}/Fixture/Connection.php | 0 .../Fixture/PreparedStatement.php | 0 .../Fixture/StringableObject.php | 0 .../PdoStatementExecuteMethodRuleTest.php | 2 +- tests/{ => default}/QuerySimulationTest.php | 0 ...ErrorInPreparedStatementMethodRuleTest.php | 0 .../SyntaxErrorInQueryFunctionRuleTest.php | 2 +- .../SyntaxErrorInQueryMethodRuleTest.php | 2 +- .../UnresolvablePdoStatementRuleTest.php | 2 +- .../UnresolvablePreparedStatementRuleTest.php | 0 .../UnresolvableQueryFunctionRuleTest.php | 2 +- .../UnresolvableQueryMethodRuleTest.php | 2 +- .../syntax-error-in-prepared-statement.neon | 4 +- tests/{ => default}/data/doctrine-dbal.php | 0 tests/{ => default}/data/mysqli-escape.php | 0 tests/{ => default}/data/mysqli.php | 0 tests/{ => default}/data/pdo-column-count.php | 0 tests/{ => default}/data/pdo-fetch-types.php | 0 tests/{ => default}/data/pdo-prepare.php | 0 tests/{ => default}/data/pdo-quote.php | 0 .../data/pdo-stmt-execute-error.php | 0 tests/{ => default}/data/pdo-stmt-execute.php | 0 tests/{ => default}/data/pdo-stmt-fetch.php | 0 tests/{ => default}/data/pdo.php | 0 tests/{ => default}/data/runMysqlQuery.php | 0 .../syntax-error-in-prepared-statement.php | 0 .../data/syntax-error-in-query-function.php | 0 .../data/syntax-error-in-query-method.php | 0 .../data/unresolvable-pdo-statement.php | 0 .../data/unresolvable-query-in-function.php | 0 .../data/unresolvable-query-in-method.php | 0 .../data/unresolvable-statement.php | 0 tests/{ => default}/schema.sql | 0 39 files changed, 15 insertions(+), 139 deletions(-) rename tests/{ => default}/DbaInferenceTest.php (95%) rename tests/{ => default}/Fixture/Connection.php (100%) rename tests/{ => default}/Fixture/PreparedStatement.php (100%) rename tests/{ => default}/Fixture/StringableObject.php (100%) rename tests/{ => default}/PdoStatementExecuteMethodRuleTest.php (98%) rename tests/{ => default}/QuerySimulationTest.php (100%) rename tests/{ => default}/SyntaxErrorInPreparedStatementMethodRuleTest.php (100%) rename tests/{ => default}/SyntaxErrorInQueryFunctionRuleTest.php (96%) rename tests/{ => default}/SyntaxErrorInQueryMethodRuleTest.php (98%) rename tests/{ => default}/UnresolvablePdoStatementRuleTest.php (96%) rename tests/{ => default}/UnresolvablePreparedStatementRuleTest.php (100%) rename tests/{ => default}/UnresolvableQueryFunctionRuleTest.php (96%) rename tests/{ => default}/UnresolvableQueryMethodRuleTest.php (96%) rename tests/{ => default}/config/syntax-error-in-prepared-statement.neon (87%) rename tests/{ => default}/data/doctrine-dbal.php (100%) rename tests/{ => default}/data/mysqli-escape.php (100%) rename tests/{ => default}/data/mysqli.php (100%) rename tests/{ => default}/data/pdo-column-count.php (100%) rename tests/{ => default}/data/pdo-fetch-types.php (100%) rename tests/{ => default}/data/pdo-prepare.php (100%) rename tests/{ => default}/data/pdo-quote.php (100%) rename tests/{ => default}/data/pdo-stmt-execute-error.php (100%) rename tests/{ => default}/data/pdo-stmt-execute.php (100%) rename tests/{ => default}/data/pdo-stmt-fetch.php (100%) rename tests/{ => default}/data/pdo.php (100%) rename tests/{ => default}/data/runMysqlQuery.php (100%) rename tests/{ => default}/data/syntax-error-in-prepared-statement.php (100%) rename tests/{ => default}/data/syntax-error-in-query-function.php (100%) rename tests/{ => default}/data/syntax-error-in-query-method.php (100%) rename tests/{ => default}/data/unresolvable-pdo-statement.php (100%) rename tests/{ => default}/data/unresolvable-query-in-function.php (100%) rename tests/{ => default}/data/unresolvable-query-in-method.php (100%) rename tests/{ => default}/data/unresolvable-statement.php (100%) rename tests/{ => default}/schema.sql (100%) diff --git a/.phpunit-phpstan-dba.cache b/.phpunit-phpstan-dba.cache index b094ca3c7..e9a893cbe 100644 --- a/.phpunit-phpstan-dba.cache +++ b/.phpunit-phpstan-dba.cache @@ -121,125 +121,6 @@ array ( 'error' => NULL, ), - ' - SELECT email adaid - WHERE gesperrt = \'1\' AND email LIKE \'%@example.com\' - FROM ada - LIMIT 1 - ' => - array ( - 'error' => - staabm\PHPStanDba\Error::__set_state(array( - 'message' => 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL/MariaDB server version for the right syntax to use near \'FROM ada LIMIT 0\' at line 3', - 'code' => 1064, - )), - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - FOR UPDATE - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - FOR UPDATE - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - OFFSET \'1\' - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - OFFSET \'1\' - FOR SHARE - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - OFFSET \'1\' - FOR UPDATE - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\' - OFFSET 1 - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\', \'1\' - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' - LIMIT \'1\', \'1\' - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' AND email LIKE \'%@example%\' - LIMIT 1 - ' => - array ( - 'error' => NULL, - ), - ' - SELECT email, adaid - FROM ada - WHERE gesperrt = \'1\' AND email LIKE NULL - LIMIT 1 - ' => - array ( - 'error' => NULL, - ), 'SELECT * FROM ada GROUP BY doesNotExist' => array ( 'error' => @@ -3623,11 +3504,6 @@ Simulated query: SELECT email, adaid FROM ada . WHERE email=\'my_other_table\' L array ( 'error' => NULL, ), - 'SELECT email, adaid, gesperrt, freigabe1u1 FROM ada - WHERE (gesperrt=\'1\' AND freigabe1u1=1) OR (gesperrt=\'1\' AND freigabe1u1=0)' => - array ( - 'error' => NULL, - ), 'SELECT email, adaid, gesperrt, freigabe1u1 FROM ada LIMIT 1' => array ( 'error' => NULL, diff --git a/composer.json b/composer.json index 048f43c5d..d97cc103b 100644 --- a/composer.json +++ b/composer.json @@ -29,8 +29,8 @@ }, "autoload-dev": { "psr-4": { - "staabm\\PHPStanDba\\Tests\\Fixture\\": "tests/Fixture/", - "staabm\\PHPStanDba\\Tests\\": "tests/" + "staabm\\PHPStanDba\\Tests\\Fixture\\": "tests/default/Fixture/", + "staabm\\PHPStanDba\\Tests\\": "tests/default/" } }, "scripts": { diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 48513c640..b9ac7a426 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -15,7 +15,7 @@ parameters: ignoreErrors: - message: '#Function Deployer\\runMysqlQuery\(\) should return array>\|null but return statement is missing.#' - path: tests/data/runMysqlQuery.php + path: tests/default/data/runMysqlQuery.php - message: '#.*has no return type specified.#' path: tests/* diff --git a/phpunit.xml b/phpunit.xml index 4a7d9befd..be44a225a 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -14,7 +14,7 @@ - tests/ + tests/default/ diff --git a/src/QueryReflection/QuerySimulation.php b/src/QueryReflection/QuerySimulation.php index 5bf7397de..de58437a3 100644 --- a/src/QueryReflection/QuerySimulation.php +++ b/src/QueryReflection/QuerySimulation.php @@ -104,7 +104,7 @@ public static function simulateParamValueType(Type $paramType, bool $preparedPar return null; } - throw new DbaException(sprintf('Unexpected expression type %s', \get_class($paramType))); + throw new DbaException(sprintf('Unexpected expression type %s of class %s', $paramType->describe(VerbosityLevel::precise()), \get_class($paramType))); } public static function simulate(string $queryString): ?string diff --git a/tests/DbaInferenceTest.php b/tests/default/DbaInferenceTest.php similarity index 95% rename from tests/DbaInferenceTest.php rename to tests/default/DbaInferenceTest.php index 4b9903c3a..2ab74f8d9 100644 --- a/tests/DbaInferenceTest.php +++ b/tests/default/DbaInferenceTest.php @@ -57,8 +57,8 @@ public function testFileAsserts( public static function getAdditionalConfigFiles(): array { return [ - __DIR__.'/../config/stubFiles.neon', - __DIR__.'/../config/extensions.neon', + __DIR__.'/../../config/stubFiles.neon', + __DIR__.'/../../config/extensions.neon', ]; } } diff --git a/tests/Fixture/Connection.php b/tests/default/Fixture/Connection.php similarity index 100% rename from tests/Fixture/Connection.php rename to tests/default/Fixture/Connection.php diff --git a/tests/Fixture/PreparedStatement.php b/tests/default/Fixture/PreparedStatement.php similarity index 100% rename from tests/Fixture/PreparedStatement.php rename to tests/default/Fixture/PreparedStatement.php diff --git a/tests/Fixture/StringableObject.php b/tests/default/Fixture/StringableObject.php similarity index 100% rename from tests/Fixture/StringableObject.php rename to tests/default/Fixture/StringableObject.php diff --git a/tests/PdoStatementExecuteMethodRuleTest.php b/tests/default/PdoStatementExecuteMethodRuleTest.php similarity index 98% rename from tests/PdoStatementExecuteMethodRuleTest.php rename to tests/default/PdoStatementExecuteMethodRuleTest.php index 7e099b139..323b4500d 100644 --- a/tests/PdoStatementExecuteMethodRuleTest.php +++ b/tests/default/PdoStatementExecuteMethodRuleTest.php @@ -13,7 +13,7 @@ class PdoStatementExecuteMethodRuleTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { - return $this->getRuleFromConfig(PdoStatementExecuteMethodRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(PdoStatementExecuteMethodRule::class, __DIR__.'/../../config/dba.neon'); } public function testParameterErrors(): void diff --git a/tests/QuerySimulationTest.php b/tests/default/QuerySimulationTest.php similarity index 100% rename from tests/QuerySimulationTest.php rename to tests/default/QuerySimulationTest.php diff --git a/tests/SyntaxErrorInPreparedStatementMethodRuleTest.php b/tests/default/SyntaxErrorInPreparedStatementMethodRuleTest.php similarity index 100% rename from tests/SyntaxErrorInPreparedStatementMethodRuleTest.php rename to tests/default/SyntaxErrorInPreparedStatementMethodRuleTest.php diff --git a/tests/SyntaxErrorInQueryFunctionRuleTest.php b/tests/default/SyntaxErrorInQueryFunctionRuleTest.php similarity index 96% rename from tests/SyntaxErrorInQueryFunctionRuleTest.php rename to tests/default/SyntaxErrorInQueryFunctionRuleTest.php index b98523719..fdcdf582e 100644 --- a/tests/SyntaxErrorInQueryFunctionRuleTest.php +++ b/tests/default/SyntaxErrorInQueryFunctionRuleTest.php @@ -13,7 +13,7 @@ class SyntaxErrorInQueryFunctionRuleTest extends AbstractServiceAwareRuleTestCas { protected function getRule(): Rule { - return $this->getRuleFromConfig(SyntaxErrorInQueryFunctionRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(SyntaxErrorInQueryFunctionRule::class, __DIR__.'/../../config/dba.neon'); } public function testSyntaxErrorInQueryRule(): void diff --git a/tests/SyntaxErrorInQueryMethodRuleTest.php b/tests/default/SyntaxErrorInQueryMethodRuleTest.php similarity index 98% rename from tests/SyntaxErrorInQueryMethodRuleTest.php rename to tests/default/SyntaxErrorInQueryMethodRuleTest.php index fd78eea86..7ebc4b521 100644 --- a/tests/SyntaxErrorInQueryMethodRuleTest.php +++ b/tests/default/SyntaxErrorInQueryMethodRuleTest.php @@ -13,7 +13,7 @@ class SyntaxErrorInQueryMethodRuleTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { - return $this->getRuleFromConfig(SyntaxErrorInQueryMethodRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(SyntaxErrorInQueryMethodRule::class, __DIR__.'/../../config/dba.neon'); } public function testSyntaxErrorInQueryRule(): void diff --git a/tests/UnresolvablePdoStatementRuleTest.php b/tests/default/UnresolvablePdoStatementRuleTest.php similarity index 96% rename from tests/UnresolvablePdoStatementRuleTest.php rename to tests/default/UnresolvablePdoStatementRuleTest.php index b7457cfbd..580f9e4af 100644 --- a/tests/UnresolvablePdoStatementRuleTest.php +++ b/tests/default/UnresolvablePdoStatementRuleTest.php @@ -25,7 +25,7 @@ protected function tearDown(): void protected function getRule(): Rule { - return $this->getRuleFromConfig(PdoStatementExecuteMethodRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(PdoStatementExecuteMethodRule::class, __DIR__.'/../../config/dba.neon'); } public function testSyntaxErrorInQueryRule(): void diff --git a/tests/UnresolvablePreparedStatementRuleTest.php b/tests/default/UnresolvablePreparedStatementRuleTest.php similarity index 100% rename from tests/UnresolvablePreparedStatementRuleTest.php rename to tests/default/UnresolvablePreparedStatementRuleTest.php diff --git a/tests/UnresolvableQueryFunctionRuleTest.php b/tests/default/UnresolvableQueryFunctionRuleTest.php similarity index 96% rename from tests/UnresolvableQueryFunctionRuleTest.php rename to tests/default/UnresolvableQueryFunctionRuleTest.php index f9472e618..5ce86e2e5 100644 --- a/tests/UnresolvableQueryFunctionRuleTest.php +++ b/tests/default/UnresolvableQueryFunctionRuleTest.php @@ -25,7 +25,7 @@ protected function tearDown(): void protected function getRule(): Rule { - return $this->getRuleFromConfig(SyntaxErrorInQueryFunctionRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(SyntaxErrorInQueryFunctionRule::class, __DIR__.'/../../config/dba.neon'); } public function testSyntaxErrorInQueryRule(): void diff --git a/tests/UnresolvableQueryMethodRuleTest.php b/tests/default/UnresolvableQueryMethodRuleTest.php similarity index 96% rename from tests/UnresolvableQueryMethodRuleTest.php rename to tests/default/UnresolvableQueryMethodRuleTest.php index ecb0a53c1..8cb78ad07 100644 --- a/tests/UnresolvableQueryMethodRuleTest.php +++ b/tests/default/UnresolvableQueryMethodRuleTest.php @@ -25,7 +25,7 @@ protected function tearDown(): void protected function getRule(): Rule { - return $this->getRuleFromConfig(SyntaxErrorInQueryMethodRule::class, __DIR__.'/../config/dba.neon'); + return $this->getRuleFromConfig(SyntaxErrorInQueryMethodRule::class, __DIR__.'/../../config/dba.neon'); } public function testSyntaxErrorInQueryRule(): void diff --git a/tests/config/syntax-error-in-prepared-statement.neon b/tests/default/config/syntax-error-in-prepared-statement.neon similarity index 87% rename from tests/config/syntax-error-in-prepared-statement.neon rename to tests/default/config/syntax-error-in-prepared-statement.neon index 498444a82..4d7de6f05 100644 --- a/tests/config/syntax-error-in-prepared-statement.neon +++ b/tests/default/config/syntax-error-in-prepared-statement.neon @@ -1,6 +1,6 @@ includes: - - ../../config/stubFiles.neon - - ../../config/extensions.neon + - ../../../config/stubFiles.neon + - ../../../config/extensions.neon services: - diff --git a/tests/data/doctrine-dbal.php b/tests/default/data/doctrine-dbal.php similarity index 100% rename from tests/data/doctrine-dbal.php rename to tests/default/data/doctrine-dbal.php diff --git a/tests/data/mysqli-escape.php b/tests/default/data/mysqli-escape.php similarity index 100% rename from tests/data/mysqli-escape.php rename to tests/default/data/mysqli-escape.php diff --git a/tests/data/mysqli.php b/tests/default/data/mysqli.php similarity index 100% rename from tests/data/mysqli.php rename to tests/default/data/mysqli.php diff --git a/tests/data/pdo-column-count.php b/tests/default/data/pdo-column-count.php similarity index 100% rename from tests/data/pdo-column-count.php rename to tests/default/data/pdo-column-count.php diff --git a/tests/data/pdo-fetch-types.php b/tests/default/data/pdo-fetch-types.php similarity index 100% rename from tests/data/pdo-fetch-types.php rename to tests/default/data/pdo-fetch-types.php diff --git a/tests/data/pdo-prepare.php b/tests/default/data/pdo-prepare.php similarity index 100% rename from tests/data/pdo-prepare.php rename to tests/default/data/pdo-prepare.php diff --git a/tests/data/pdo-quote.php b/tests/default/data/pdo-quote.php similarity index 100% rename from tests/data/pdo-quote.php rename to tests/default/data/pdo-quote.php diff --git a/tests/data/pdo-stmt-execute-error.php b/tests/default/data/pdo-stmt-execute-error.php similarity index 100% rename from tests/data/pdo-stmt-execute-error.php rename to tests/default/data/pdo-stmt-execute-error.php diff --git a/tests/data/pdo-stmt-execute.php b/tests/default/data/pdo-stmt-execute.php similarity index 100% rename from tests/data/pdo-stmt-execute.php rename to tests/default/data/pdo-stmt-execute.php diff --git a/tests/data/pdo-stmt-fetch.php b/tests/default/data/pdo-stmt-fetch.php similarity index 100% rename from tests/data/pdo-stmt-fetch.php rename to tests/default/data/pdo-stmt-fetch.php diff --git a/tests/data/pdo.php b/tests/default/data/pdo.php similarity index 100% rename from tests/data/pdo.php rename to tests/default/data/pdo.php diff --git a/tests/data/runMysqlQuery.php b/tests/default/data/runMysqlQuery.php similarity index 100% rename from tests/data/runMysqlQuery.php rename to tests/default/data/runMysqlQuery.php diff --git a/tests/data/syntax-error-in-prepared-statement.php b/tests/default/data/syntax-error-in-prepared-statement.php similarity index 100% rename from tests/data/syntax-error-in-prepared-statement.php rename to tests/default/data/syntax-error-in-prepared-statement.php diff --git a/tests/data/syntax-error-in-query-function.php b/tests/default/data/syntax-error-in-query-function.php similarity index 100% rename from tests/data/syntax-error-in-query-function.php rename to tests/default/data/syntax-error-in-query-function.php diff --git a/tests/data/syntax-error-in-query-method.php b/tests/default/data/syntax-error-in-query-method.php similarity index 100% rename from tests/data/syntax-error-in-query-method.php rename to tests/default/data/syntax-error-in-query-method.php diff --git a/tests/data/unresolvable-pdo-statement.php b/tests/default/data/unresolvable-pdo-statement.php similarity index 100% rename from tests/data/unresolvable-pdo-statement.php rename to tests/default/data/unresolvable-pdo-statement.php diff --git a/tests/data/unresolvable-query-in-function.php b/tests/default/data/unresolvable-query-in-function.php similarity index 100% rename from tests/data/unresolvable-query-in-function.php rename to tests/default/data/unresolvable-query-in-function.php diff --git a/tests/data/unresolvable-query-in-method.php b/tests/default/data/unresolvable-query-in-method.php similarity index 100% rename from tests/data/unresolvable-query-in-method.php rename to tests/default/data/unresolvable-query-in-method.php diff --git a/tests/data/unresolvable-statement.php b/tests/default/data/unresolvable-statement.php similarity index 100% rename from tests/data/unresolvable-statement.php rename to tests/default/data/unresolvable-statement.php diff --git a/tests/schema.sql b/tests/default/schema.sql similarity index 100% rename from tests/schema.sql rename to tests/default/schema.sql From 253faf6c75e334bdea0b2482ca3a20c5d069e5e7 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 3 Feb 2022 10:29:20 +0100 Subject: [PATCH 2/2] Update schema.sql --- tests/{default => }/schema.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/{default => }/schema.sql (100%) diff --git a/tests/default/schema.sql b/tests/schema.sql similarity index 100% rename from tests/default/schema.sql rename to tests/schema.sql