Skip to content

Commit 9eac753

Browse files
committed
Used the operations builder to better show the issue
1 parent e6f0068 commit 9eac753

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

src/Attributes/Operation.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ public function __construct(string $id = null, array $tags = [], string $securit
3737
}
3838

3939
if ($security) {
40-
$this->security = class_exists($security) ? $security : app()->getNamespace() . 'OpenApi\\SecuritySchemes\\' . $security;
40+
$this->security = class_exists($security) ? $security : app()->getNamespace().'OpenApi\\SecuritySchemes\\'.$security;
4141

42-
if (!is_a($this->security, SecuritySchemeFactory::class, true)) {
42+
if (! is_a($this->security, SecuritySchemeFactory::class, true)) {
4343
throw new InvalidArgumentException(
4444
sprintf('Security class is either not declared or is not an instance of %s', SecuritySchemeFactory::class)
4545
);

tests/Builders/SecurityBuilderTest.php

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace Vyuldashev\LaravelOpenApi\Tests\Builders;
33

4+
use phpDocumentor\Reflection\DocBlock;
45
use Vyuldashev\LaravelOpenApi\Tests\TestCase;
56
use GoldSpecDigital\ObjectOrientedOAS\OpenApi;
67
use Vyuldashev\LaravelOpenApi\RouteInformation;
@@ -9,6 +10,7 @@
910
use GoldSpecDigital\ObjectOrientedOAS\Objects\Components;
1011
use GoldSpecDigital\ObjectOrientedOAS\Objects\SecurityScheme;
1112
use Vyuldashev\LaravelOpenApi\Factories\SecuritySchemeFactory;
13+
use Vyuldashev\LaravelOpenApi\Builders\Paths\OperationsBuilder;
1214
use GoldSpecDigital\ObjectOrientedOAS\Objects\SecurityRequirement;
1315
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\SecurityBuilder;
1416
use Vyuldashev\LaravelOpenApi\Attributes\Operation as AttributesOperation;
@@ -152,32 +154,32 @@ public function testWeCanAddTurnOffOperationSecurityUsingBuilder()
152154
->securitySchemes($testJwtScheme);
153155

154156
$routeInfo = new RouteInformation;
155-
$routeInfo->action = 'get';
157+
$routeInfo->parameters = collect();
158+
$routeInfo->action = 'foo';
159+
$routeInfo->method = 'get';
156160
$routeInfo->name = 'test route';
161+
$routeInfo->actionDocBlock = new DocBlock('Test');
157162
$routeInfo->actionAttributes = collect([
158163
/**
159-
* we can set secuity to null to turn it off, as
160-
* that's the default value. So '' is next best
161-
* option?
162-
*/
164+
* we can set secuity to null to turn it off, as
165+
* that's the default value. So '' is next best
166+
* option?
167+
*/
163168
new AttributesOperation(security: ''),
164169
]);
165-
$routeInfo->uri = '/example';
166170

167-
/** @var SecurityBuilder */
168-
$builder = resolve(SecurityBuilder::class);
171+
/** @var OperationsBuilder */
172+
$operationsBuilder = resolve(OperationsBuilder::class);
169173

170-
$operation = Operation::create()
171-
->security(...$builder->build($routeInfo))
172-
->action('get');
174+
$operations = $operationsBuilder->build([$routeInfo]);
173175

174176
$openApi = OpenApi::create()
175177
->security($globalRequirement)
176178
->components($components)
177179
->paths(
178180
PathItem::create()
179181
->route('/foo')
180-
->operations($operation)
182+
->operations(...$operations)
181183
);
182184

183185
self::assertSame([

0 commit comments

Comments
 (0)