diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 737ebac..cdf2a5e 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false matrix: - php-version: [ 7.4, 7.3, 7.2, 7.1 ] + php-version: [ 7.4 ] steps: - uses: actions/checkout@v2 diff --git a/.php_cs.dist b/.php-cs-fixer.dist.php similarity index 86% rename from .php_cs.dist rename to .php-cs-fixer.dist.php index 76cdffc..18a287e 100644 --- a/.php_cs.dist +++ b/.php-cs-fixer.dist.php @@ -1,13 +1,13 @@ exclude('Protobuf') - ->exclude('vendor') ->in(__DIR__ . '/src') ->in(__DIR__ . '/tests') - ->in(__DIR__ . '/examples') ; -return PhpCsFixer\Config::create() +$config = new PhpCsFixer\Config(); +$config + ->setRiskyAllowed(true) ->setRules([ 'array_syntax' => ['syntax' => 'short'], 'no_unused_imports' => true, @@ -24,3 +24,5 @@ ]) ->setFinder($finder) ; + +return $config; diff --git a/README.md b/README.md index fe51043..2f006f2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Yoti PHP Sandbox SDK -[![Build Status](https://travis-ci.com/getyoti/yoti-php-sdk-sandbox.svg?branch=master)](https://travis-ci.com/getyoti/yoti-php-sdk-sandbox) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Aphp-sandbox&metric=coverage)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) -[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Aphp-sandbox&metric=bugs)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) -[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Aphp-sandbox&metric=code_smells)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) -[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Aphp-sandbox&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) +[![Build Status](https://github.com/getyoti/yoti-php-sdk-sandbox/workflows/Unit%20Tests/badge.svg?branch=master)](https://github.com/getyoti/yoti-php-sdk-sandbox/actions) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=getyoti_yoti-php-sdk-sandbox&metric=coverage)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=getyoti_yoti-php-sdk-sandbox&metric=bugs)](https://sonarcloud.io/dashboard?id=getyoti%3Aphp-sandbox) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=getyoti_yoti-php-sdk-sandbox&metric=code_smells)](https://sonarcloud.io/dashboard?id=getyoti_yoti-php-sdk-sandbox) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=getyoti_yoti-php-sdk-sandbox&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=getyoti_yoti-php-sdk-sandbox) This repository contains the tools you need to test your Yoti integration. diff --git a/composer.json b/composer.json index 38e884b..117e949 100755 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "yoti/yoti-php-sdk-sandbox", "description": "Yoti PHP SDK Sandbox", - "version": "1.6.0", + "version": "1.7.0", "keywords": [ "yoti", "sdk" @@ -9,13 +9,13 @@ "homepage": "https://yoti.com", "license": "MIT", "require": { - "php": "^7.1 || ^8.0", - "yoti/yoti-php-sdk": "^3.1" + "php": "^7.1 || ^8.0 || ^8.1", + "yoti/yoti-php-sdk": "^4.2" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", "squizlabs/php_codesniffer": "^3.4", - "friendsofphp/php-cs-fixer": "^2.15", + "friendsofphp/php-cs-fixer": "^3.4", "brainmaestro/composer-git-hooks": "^2.8", "phpstan/phpstan-strict-rules": "^0.12.1", "phpstan/extension-installer": "^1.0", @@ -36,9 +36,13 @@ "test": "phpunit", "coverage-clover": "phpunit --coverage-clover ./coverage/coverage.xml", "coverage-html": "phpunit --coverage-html ./coverage/report", + "fix": [ + "php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no", + "phpcbf" + ], "lint": [ "phpcs", - "php-cs-fixer fix --config=.php_cs.dist -v --dry-run --using-cache=no --diff-format=udiff --ansi", + "php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --dry-run --using-cache=no", "phpstan analyse" ], "post-install-cmd": "cghooks add --ignore-lock", @@ -48,5 +52,10 @@ "hooks": { "pre-commit": "composer test && composer lint" } + }, + "config": { + "allow-plugins": { + "phpstan/extension-installer": true + } } } diff --git a/sonar-project.properties b/sonar-project.properties index 1b5d528..965f56e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,9 +1,9 @@ sonar.host.url = https://sonarcloud.io sonar.organization = getyoti -sonar.projectKey = getyoti:php-sandbox +sonar.projectKey = getyoti_yoti-php-sdk-sandbox sonar.projectName = PHP SDK Sandbox -sonar.projectVersion = 1.6.0 +sonar.projectVersion = 1.7.0 sonar.language = php sonar.sources=src diff --git a/src/DocScan/Request/Check/Report/SandboxBreakdown.php b/src/DocScan/Request/Check/Report/SandboxBreakdown.php index 5f37c94..d3eacab 100644 --- a/src/DocScan/Request/Check/Report/SandboxBreakdown.php +++ b/src/DocScan/Request/Check/Report/SandboxBreakdown.php @@ -9,7 +9,6 @@ class SandboxBreakdown implements \JsonSerializable { - /** * @var string */ diff --git a/src/DocScan/Request/Check/Report/SandboxCheckReport.php b/src/DocScan/Request/Check/Report/SandboxCheckReport.php index d4ff208..173a03d 100644 --- a/src/DocScan/Request/Check/Report/SandboxCheckReport.php +++ b/src/DocScan/Request/Check/Report/SandboxCheckReport.php @@ -6,7 +6,6 @@ class SandboxCheckReport implements \JsonSerializable { - /** * @var SandboxRecommendation */ diff --git a/src/DocScan/Request/Check/Report/SandboxDetail.php b/src/DocScan/Request/Check/Report/SandboxDetail.php index 7734086..52ceebc 100644 --- a/src/DocScan/Request/Check/Report/SandboxDetail.php +++ b/src/DocScan/Request/Check/Report/SandboxDetail.php @@ -6,7 +6,6 @@ class SandboxDetail implements \JsonSerializable { - /** * @var string */ diff --git a/src/DocScan/Request/Check/Report/SandboxRecommendation.php b/src/DocScan/Request/Check/Report/SandboxRecommendation.php index 169baac..6f8efd7 100644 --- a/src/DocScan/Request/Check/Report/SandboxRecommendation.php +++ b/src/DocScan/Request/Check/Report/SandboxRecommendation.php @@ -8,7 +8,6 @@ class SandboxRecommendation implements \JsonSerializable { - /** * @var string|null */ diff --git a/src/DocScan/Request/Check/Report/SandboxRecommendationBuilder.php b/src/DocScan/Request/Check/Report/SandboxRecommendationBuilder.php index 6110b8b..614c68f 100644 --- a/src/DocScan/Request/Check/Report/SandboxRecommendationBuilder.php +++ b/src/DocScan/Request/Check/Report/SandboxRecommendationBuilder.php @@ -6,7 +6,6 @@ class SandboxRecommendationBuilder { - /** * @var string */ diff --git a/src/DocScan/Request/Check/SandboxCheck.php b/src/DocScan/Request/Check/SandboxCheck.php index 195bb60..67a1dae 100644 --- a/src/DocScan/Request/Check/SandboxCheck.php +++ b/src/DocScan/Request/Check/SandboxCheck.php @@ -6,7 +6,6 @@ class SandboxCheck implements \JsonSerializable { - /** * @var SandboxCheckResult */ diff --git a/src/DocScan/Request/Check/SandboxCheckBuilder.php b/src/DocScan/Request/Check/SandboxCheckBuilder.php index 38f9a2f..f8189f6 100644 --- a/src/DocScan/Request/Check/SandboxCheckBuilder.php +++ b/src/DocScan/Request/Check/SandboxCheckBuilder.php @@ -10,7 +10,6 @@ abstract class SandboxCheckBuilder { - /** * @var SandboxRecommendation */ diff --git a/src/DocScan/Request/Check/SandboxCheckResult.php b/src/DocScan/Request/Check/SandboxCheckResult.php index 15f1a4b..f6ee2f6 100644 --- a/src/DocScan/Request/Check/SandboxCheckResult.php +++ b/src/DocScan/Request/Check/SandboxCheckResult.php @@ -8,7 +8,6 @@ class SandboxCheckResult implements \JsonSerializable { - /** * @var SandboxCheckReport */ diff --git a/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheck.php b/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheck.php index eafb5a3..dec4780 100644 --- a/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheck.php +++ b/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheck.php @@ -6,5 +6,4 @@ class SandboxDocumentAuthenticityCheck extends SandboxDocumentCheck { - } diff --git a/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilder.php b/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilder.php index 08ffe19..6e3b226 100644 --- a/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilder.php +++ b/src/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilder.php @@ -6,7 +6,6 @@ class SandboxDocumentAuthenticityCheckBuilder extends SandboxDocumentCheckBuilder { - /** * @return SandboxDocumentAuthenticityCheck */ diff --git a/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheck.php b/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheck.php index 395ea97..06d4678 100644 --- a/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheck.php +++ b/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheck.php @@ -6,5 +6,4 @@ class SandboxDocumentFaceMatchCheck extends SandboxDocumentCheck { - } diff --git a/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilder.php b/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilder.php index 9700039..02a8a5e 100644 --- a/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilder.php +++ b/src/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilder.php @@ -6,7 +6,6 @@ class SandboxDocumentFaceMatchCheckBuilder extends SandboxDocumentCheckBuilder { - /** * @return SandboxDocumentFaceMatchCheck */ diff --git a/src/DocScan/Request/Check/SandboxDocumentTextDataCheckBuilder.php b/src/DocScan/Request/Check/SandboxDocumentTextDataCheckBuilder.php index 6cdce9d..b4e18b9 100644 --- a/src/DocScan/Request/Check/SandboxDocumentTextDataCheckBuilder.php +++ b/src/DocScan/Request/Check/SandboxDocumentTextDataCheckBuilder.php @@ -6,7 +6,6 @@ class SandboxDocumentTextDataCheckBuilder extends SandboxDocumentCheckBuilder { - /** * @var array|null */ diff --git a/src/DocScan/Request/Check/SandboxDocumentTextDataCheckResult.php b/src/DocScan/Request/Check/SandboxDocumentTextDataCheckResult.php index f862adc..243127e 100644 --- a/src/DocScan/Request/Check/SandboxDocumentTextDataCheckResult.php +++ b/src/DocScan/Request/Check/SandboxDocumentTextDataCheckResult.php @@ -8,7 +8,6 @@ class SandboxDocumentTextDataCheckResult extends SandboxCheckResult { - /** * @var array|null */ diff --git a/src/DocScan/Request/Check/SandboxStaticLivenessCheck.php b/src/DocScan/Request/Check/SandboxStaticLivenessCheck.php new file mode 100644 index 0000000..8a37d9c --- /dev/null +++ b/src/DocScan/Request/Check/SandboxStaticLivenessCheck.php @@ -0,0 +1,18 @@ +buildReport()); + return new SandboxStaticLivenessCheck($result); + } +} diff --git a/src/DocScan/Request/Check/SandboxSupplementaryDocumentTextDataCheckResult.php b/src/DocScan/Request/Check/SandboxSupplementaryDocumentTextDataCheckResult.php index c8fa474..27015ef 100644 --- a/src/DocScan/Request/Check/SandboxSupplementaryDocumentTextDataCheckResult.php +++ b/src/DocScan/Request/Check/SandboxSupplementaryDocumentTextDataCheckResult.php @@ -8,7 +8,6 @@ class SandboxSupplementaryDocumentTextDataCheckResult extends SandboxCheckResult { - /** * @var array|null */ diff --git a/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheck.php b/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheck.php index c7aa43f..d79c842 100644 --- a/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheck.php +++ b/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheck.php @@ -6,5 +6,4 @@ class SandboxThirdPartyIdentityCheck extends SandboxDocumentCheck { - } diff --git a/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheckBuilder.php b/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheckBuilder.php index 16964d7..98fc093 100644 --- a/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheckBuilder.php +++ b/src/DocScan/Request/Check/SandboxThirdPartyIdentityCheckBuilder.php @@ -6,7 +6,6 @@ class SandboxThirdPartyIdentityCheckBuilder extends SandboxDocumentCheckBuilder { - /** * @return SandboxThirdPartyIdentityCheck */ diff --git a/src/DocScan/Request/SandboxResponseConfig.php b/src/DocScan/Request/SandboxResponseConfig.php index 569bb61..917a1c1 100644 --- a/src/DocScan/Request/SandboxResponseConfig.php +++ b/src/DocScan/Request/SandboxResponseConfig.php @@ -8,7 +8,6 @@ class SandboxResponseConfig implements \JsonSerializable { - /** * @var SandboxTaskResults|null */ diff --git a/src/DocScan/Request/SandboxResponseConfigBuilder.php b/src/DocScan/Request/SandboxResponseConfigBuilder.php index 9d26ed9..d7e7890 100644 --- a/src/DocScan/Request/SandboxResponseConfigBuilder.php +++ b/src/DocScan/Request/SandboxResponseConfigBuilder.php @@ -6,7 +6,6 @@ class SandboxResponseConfigBuilder { - /** * @var SandboxTaskResults */ diff --git a/tests/DocScan/Request/Check/Report/SandboxBreakdownTest.php b/tests/DocScan/Request/Check/Report/SandboxBreakdownTest.php index b634d20..3a97b57 100644 --- a/tests/DocScan/Request/Check/Report/SandboxBreakdownTest.php +++ b/tests/DocScan/Request/Check/Report/SandboxBreakdownTest.php @@ -13,7 +13,6 @@ */ class SandboxBreakdownTest extends TestCase { - private const SOME_SUB_CHECK = 'someSubCheck'; private const SOME_RESULT = 'someResult'; diff --git a/tests/DocScan/Request/Check/Report/SandboxDetailTest.php b/tests/DocScan/Request/Check/Report/SandboxDetailTest.php index 8d5a95c..d3030da 100644 --- a/tests/DocScan/Request/Check/Report/SandboxDetailTest.php +++ b/tests/DocScan/Request/Check/Report/SandboxDetailTest.php @@ -12,7 +12,6 @@ */ class SandboxDetailTest extends TestCase { - private const SOME_NAME = 'someName'; private const SOME_VALUE = 'someValue'; diff --git a/tests/DocScan/Request/Check/Report/SandboxRecommendationTest.php b/tests/DocScan/Request/Check/Report/SandboxRecommendationTest.php index e8a6ad8..b7aadc9 100644 --- a/tests/DocScan/Request/Check/Report/SandboxRecommendationTest.php +++ b/tests/DocScan/Request/Check/Report/SandboxRecommendationTest.php @@ -12,7 +12,6 @@ */ class SandboxRecommendationTest extends TestCase { - private const SOME_VALUE = 'someValue'; private const SOME_REASON = 'someReason'; private const SOME_RECOVERY_SUGGESTION = 'someRecoverySuggestion'; diff --git a/tests/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilderTest.php b/tests/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilderTest.php index f9398ec..44f10e1 100644 --- a/tests/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilderTest.php +++ b/tests/DocScan/Request/Check/SandboxDocumentAuthenticityCheckBuilderTest.php @@ -14,7 +14,6 @@ class SandboxDocumentAuthenticityCheckBuilderTest extends TestCase { - /** * @var MockObject|SandboxRecommendation */ diff --git a/tests/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilderTest.php b/tests/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilderTest.php index 215b228..bba538a 100644 --- a/tests/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilderTest.php +++ b/tests/DocScan/Request/Check/SandboxDocumentFaceMatchCheckBuilderTest.php @@ -14,7 +14,6 @@ class SandboxDocumentFaceMatchCheckBuilderTest extends TestCase { - /** * @var MockObject|SandboxRecommendation */ diff --git a/tests/DocScan/Request/Check/SandboxIdDocumentComparisonCheckBuilderTest.php b/tests/DocScan/Request/Check/SandboxIdDocumentComparisonCheckBuilderTest.php index fd0bdaa..4cc2388 100644 --- a/tests/DocScan/Request/Check/SandboxIdDocumentComparisonCheckBuilderTest.php +++ b/tests/DocScan/Request/Check/SandboxIdDocumentComparisonCheckBuilderTest.php @@ -14,7 +14,6 @@ class SandboxIdDocumentComparisonCheckBuilderTest extends TestCase { - /** * @var MockObject|SandboxRecommendation */ diff --git a/tests/DocScan/Request/Check/SandboxStaticLivenessCheckBuilderTest.php b/tests/DocScan/Request/Check/SandboxStaticLivenessCheckBuilderTest.php new file mode 100644 index 0000000..7834018 --- /dev/null +++ b/tests/DocScan/Request/Check/SandboxStaticLivenessCheckBuilderTest.php @@ -0,0 +1,75 @@ +recommendationMock = $this->createMock(SandboxRecommendation::class); + $this->breakdownMock = $this->createMock(SandboxBreakdown::class); + } + + /** + * @test + */ + public function shouldThrowExceptionWhenMissingRecommendation(): void + { + $this->expectException(\TypeError::class); + $this->expectExceptionMessage(SandboxRecommendation::class); + + (new SandboxStaticLivenessCheckBuilder())->build(); + } + + /** + * @test + */ + public function shouldBuildCorrectly(): void + { + $result = (new SandboxStaticLivenessCheckBuilder()) + ->withRecommendation($this->recommendationMock) + ->withBreakdown($this->breakdownMock) + ->build(); + + $this->assertInstanceOf(SandboxStaticLivenessCheck::class, $result); + $this->assertInstanceOf(SandboxLivenessCheck::class, $result); + + $this->assertJsonStringEqualsJsonString( + json_encode([ + 'result' => [ + 'report' => [ + 'recommendation' => $this->recommendationMock, + 'breakdown' => [ + $this->breakdownMock + ], + ], + ], + 'liveness_type' => 'STATIC', + ]), + json_encode($result) + ); + } +} diff --git a/tests/DocScan/Request/Check/SandboxZoomLivenessCheckBuilderTest.php b/tests/DocScan/Request/Check/SandboxZoomLivenessCheckBuilderTest.php index eef48b1..5f75f8c 100644 --- a/tests/DocScan/Request/Check/SandboxZoomLivenessCheckBuilderTest.php +++ b/tests/DocScan/Request/Check/SandboxZoomLivenessCheckBuilderTest.php @@ -14,7 +14,6 @@ class SandboxZoomLivenessCheckBuilderTest extends TestCase { - /** * @var MockObject|SandboxRecommendation */ diff --git a/tests/DocScan/Request/SandboxTaskResultsTest.php b/tests/DocScan/Request/SandboxTaskResultsTest.php index f8484c8..04c441c 100644 --- a/tests/DocScan/Request/SandboxTaskResultsTest.php +++ b/tests/DocScan/Request/SandboxTaskResultsTest.php @@ -14,7 +14,6 @@ */ class SandboxTaskResultsTest extends TestCase { - /** * @test * @covers ::__construct