From da1d6c68d21b2739c8bb1701243e6419eae14975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BA=91?= Date: Tue, 20 Dec 2022 16:45:31 +0800 Subject: [PATCH] =?UTF-8?q?tests(service):=20=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=20extends=20=E7=9A=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Service/ExtendService.php | 14 +++++++----- tests/Unit/EmailServiceTest.php | 4 ++-- tests/Unit/ExtendServiceTest.php | 38 ++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 tests/Unit/ExtendServiceTest.php diff --git a/src/Service/ExtendService.php b/src/Service/ExtendService.php index 4032ae2..8b4c9aa 100644 --- a/src/Service/ExtendService.php +++ b/src/Service/ExtendService.php @@ -15,18 +15,20 @@ class ExtendService * * @return string[] */ - public function parse(ServerRequestInterface $request): array - { - $params = $request->getQueryParams(); + public function parse( + ?ServerRequestInterface $request, + ?array $params = null + ): array { + $params ??= $request->getQueryParams(); $extends = $params['extends'] ?? null; if (!empty($extends)) { $extends = explode(',', $extends); return Context::set(self::class, array_map('trim', $extends)); } - + return []; } - + /** * @return array */ @@ -34,7 +36,7 @@ class ExtendService { return Context::get(self::class) ?? []; } - + /** * 判断是否传入了此扩展 * diff --git a/tests/Unit/EmailServiceTest.php b/tests/Unit/EmailServiceTest.php index 004a063..4232dc3 100644 --- a/tests/Unit/EmailServiceTest.php +++ b/tests/Unit/EmailServiceTest.php @@ -26,7 +26,7 @@ it('assertions that send HTML is available', function () use ($email) { HTML ); expect($result)->toBeTrue(); -}); +})->skip(); it('assertions that send Text is available', function () use ($email) { $result = $email->sendText( @@ -37,7 +37,7 @@ it('assertions that send Text is available', function () use ($email) { Text ); expect($result)->toBeTrue(); -}); +})->skip(); it('assertions Error Receiver can be catch', function () use ($email) { try { diff --git a/tests/Unit/ExtendServiceTest.php b/tests/Unit/ExtendServiceTest.php new file mode 100644 index 0000000..22f9aad --- /dev/null +++ b/tests/Unit/ExtendServiceTest.php @@ -0,0 +1,38 @@ + + * Powered by PhpStorm + * Created on 2022/12/20 + */ + +namespace Singularity\HDK\Test\Core\Unit; + +use Singularity\HDK\Core\Service\ExtendService; + +$service = new ExtendService(); + +it('asserts query parameters can be parsed.', function () use ($service) { + $result = $service->parse( + null, + params: [ + 'id' => 5, + 'extends' => 'a,b', + ] + ); + expect($result)->toBeArray()->toHaveCount(2)->toBe(['a', 'b']); +}); +it('asserts has extends', function () use ($service) { + expect($service->hasExtends('a'))->toBeTrue() + ->and($service->hasExtends('b'))->toBeTrue() + ->and($service->hasExtends('c'))->toBeFalse(); +})->depends('it asserts query parameters can be parsed.'); + +it('asserts parsed extends', function () use ($service) { + $extends = $service->getExtends(); + expect($extends)->toBeArray()->toMatchArray([ + 'a', + 'b', + ]); +})->depends('it asserts query parameters can be parsed.');