├── LICENSE ├── README.md ├── composer.json └── src ├── ChecksMinimumSupportedVersion.php ├── Coverage └── TestLocation.php ├── InvalidVersion.php ├── MemoryUsageAware.php ├── SyntaxErrorAware.php ├── TestFrameworkAdapter.php ├── TestFrameworkAdapterFactory.php └── UnsupportedTestFrameworkVersion.php /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2017, 2019 Maks Rafalko 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Abstract TestFramework Adapter for Infection 2 | 3 | This is a repository for Abstract TestFramework Adapter - interfaces and classes to use in Infection as an abstraction of any Test Framework. 4 | 5 | ![test-framework-adapter](./docs/test-framework-adapter.png) 6 | 7 | ### Infection - Mutation Testing Framework 8 | 9 | Please read documentation here: [infection.github.io](http://infection.github.io) 10 | 11 | Twitter: [@infection_php](http://twitter.com/infection_php) 12 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "infection/abstract-testframework-adapter", 3 | "description": "Abstract Test Framework Adapter for Infection", 4 | "license": "BSD-3-Clause", 5 | "type": "library", 6 | "authors": [ 7 | { 8 | "name": "Maks Rafalko", 9 | "email": "maks.rafalko@gmail.com" 10 | } 11 | ], 12 | "require": { 13 | "php": "^7.4 || ^8.0" 14 | }, 15 | "require-dev": { 16 | "ergebnis/composer-normalize": "^2.18", 17 | "friendsofphp/php-cs-fixer": "^3.4", 18 | "phpunit/phpunit": "^9.5" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Infection\\AbstractTestFramework\\": "src/" 23 | } 24 | }, 25 | "autoload-dev": { 26 | "psr-4": { 27 | "Infection\\AbstractTestFramework\\": "tests/" 28 | } 29 | }, 30 | "config": { 31 | "sort-packages": true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/ChecksMinimumSupportedVersion.php: -------------------------------------------------------------------------------- 1 | method = $method; 47 | $this->filePath = $filePath; 48 | $this->executionTime = $executionTime; 49 | } 50 | 51 | public static function forTestMethod(string $testMethod): self 52 | { 53 | return new self($testMethod, null, null); 54 | } 55 | 56 | public function getMethod(): string 57 | { 58 | return $this->method; 59 | } 60 | 61 | public function getFilePath(): ?string 62 | { 63 | return $this->filePath; 64 | } 65 | 66 | public function getExecutionTime(): ?float 67 | { 68 | return $this->executionTime; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/InvalidVersion.php: -------------------------------------------------------------------------------- 1 | detectedVersion = $detectedVersion; 50 | $this->minimumSupportedVersion = $minimumSupportedVersion; 51 | } 52 | 53 | public function getDetectedVersion(): string 54 | { 55 | return $this->detectedVersion; 56 | } 57 | 58 | public function getMinimumSupportedVersion(): string 59 | { 60 | return $this->minimumSupportedVersion; 61 | } 62 | } 63 | --------------------------------------------------------------------------------