Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions pint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"preset": "psr12"
}
2 changes: 1 addition & 1 deletion src/OpenAPI.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ final class OpenAPI

private \Opis\JsonSchema\Validator $validator;

public function __construct(?Retriever $retriever = null)
public function __construct(Retriever $retriever = null)
{
$retriever = $retriever ?? new LocalFilesystemRetriever();

Expand Down
6 changes: 0 additions & 6 deletions src/References/JsonPointer.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

namespace Apiboard\OpenAPI\References;

use InvalidArgumentException;

class JsonPointer
{
private string $filename;
Expand All @@ -15,10 +13,6 @@ class JsonPointer

public function __construct(string $value)
{
if (is_string($value) === false) {
throw new InvalidArgumentException('Ref value must be a string');
}

$splitRef = explode('#', $value, 2);

$this->filename = $splitRef[0];
Expand Down
2 changes: 1 addition & 1 deletion src/References/Resolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ final class Resolver

private array $replacedKeys = [];

public function __construct(?Retriever $retriever = null)
public function __construct(Retriever $retriever = null)
{
$this->retriever = $retriever;
}
Expand Down
11 changes: 10 additions & 1 deletion src/Structure/Structure.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,28 @@

namespace Apiboard\OpenAPI\Structure;

use Apiboard\OpenAPI\References\JsonPointer;
use JsonSerializable;

abstract class Structure implements JsonSerializable
{
protected array $data;

public function __construct(array $data)
protected ?JsonPointer $pointer;

public function __construct(array $data, JsonPointer $pointer = null)
{
$this->data = $data;
$this->pointer = $pointer;
}

public function jsonSerialize(): array
{
return $this->data;
}

public function pointer(): ?JsonPointer
{
return $this->pointer;
}
}
6 changes: 2 additions & 4 deletions tests/Concerns/CanBeDeprecatedTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use Apiboard\OpenAPI\Structure\Schema;

test('it can return the deprecated state', function () {
$class = new class()
{
$class = new class () {
use CanBeDeprecated;

protected $data = [
Expand All @@ -22,8 +21,7 @@
});

test('it returns false for the the deprecated state by default', function () {
$class = new class()
{
$class = new class () {
use CanBeDeprecated;
};

Expand Down
6 changes: 2 additions & 4 deletions tests/Concerns/CanBeDescribedTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
use Apiboard\OpenAPI\Structure\Tag;

test('it can return the description', function () {
$class = new class()
{
$class = new class () {
use CanBeDescribed;

protected $data = [
Expand All @@ -30,8 +29,7 @@
});

test('it returns null when description is unavaible', function () {
$class = new class()
{
$class = new class () {
use CanBeDescribed;
};

Expand Down
6 changes: 2 additions & 4 deletions tests/Concerns/CanBeRequiredTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
use Apiboard\OpenAPI\Structure\RequestBody;

test('it can return the required state', function () {
$class = new class()
{
$class = new class () {
use CanBeRequired;

protected $data = [
Expand All @@ -21,8 +20,7 @@
});

test('it returns false for the the required state by default', function () {
$class = new class()
{
$class = new class () {
use CanBeRequired;

protected $data = [];
Expand Down
9 changes: 3 additions & 6 deletions tests/Concerns/CanBeUsedAsArrayTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
use Apiboard\OpenAPI\Structure\Webhooks;

test('it can be looped over', function () {
$class = new class() implements ArrayAccess, Countable, Iterator
{
$class = new class () implements ArrayAccess, Countable, Iterator {
use CanBeUsedAsArray;

protected $data = [
Expand All @@ -42,8 +41,7 @@
});

test('it can be counted', function () {
$class = new class() implements ArrayAccess, Countable, Iterator
{
$class = new class () implements ArrayAccess, Countable, Iterator {
use CanBeUsedAsArray;

protected $data = [
Expand All @@ -58,8 +56,7 @@
});

test('it can retrieve data by key', function () {
$class = new class() implements ArrayAccess, Countable, Iterator
{
$class = new class () implements ArrayAccess, Countable, Iterator {
use CanBeUsedAsArray;

protected $data = [
Expand Down
3 changes: 1 addition & 2 deletions tests/Concerns/HasReferencesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
use Apiboard\OpenAPI\Structure\Webhooks;

test('it can return all references', function () {
$class = new class()
{
$class = new class () {
use HasReferences;

public function toArray(): array
Expand Down
6 changes: 2 additions & 4 deletions tests/Concerns/HasSchemaTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use Apiboard\OpenAPI\Structure\Schema;

test('it can return the schema', function () {
$class = new class()
{
$class = new class () {
use HasASchema;

protected $data = [
Expand All @@ -27,8 +26,7 @@ public function toArray(): array
});

test('it can return a referenced schema', function () {
$class = new class()
{
$class = new class () {
use HasASchema;

protected $data = [
Expand Down
3 changes: 1 addition & 2 deletions tests/Concerns/HasVendorExtensionsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@
use Apiboard\OpenAPI\Structure\Tag;

test('it can retrieve vendor extensions', function () {
$class = new class()
{
$class = new class () {
use HasVendorExtensions;

protected $data = [
Expand Down
6 changes: 2 additions & 4 deletions tests/OpenAPITest.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@

test('it can resolve references', function () {
$jsonFile = fixture('references.json');
$retriever = new class() implements Retriever
{
$retriever = new class () implements Retriever {
private bool $called = false;

private string $basePath = '';
Expand Down Expand Up @@ -87,8 +86,7 @@ public function wasCalled(): bool

test('it resolves references when parsing', function () {
$jsonFile = fixture('references.json');
$retriever = new class() implements Retriever
{
$retriever = new class () implements Retriever {
private bool $called = false;

private string $basePath = '';
Expand Down
2 changes: 1 addition & 1 deletion tests/Pest.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
|
*/

function openAPI(?Retriever $retriever = null): OpenAPI
function openAPI(Retriever $retriever = null): OpenAPI
{
return new OpenAPI($retriever);
}
Expand Down
3 changes: 1 addition & 2 deletions tests/References/ResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,7 @@
function retriever(callable $callback): Retriever
{
/** @var Retriever */
$retriever = new class($callback) implements Retriever
{
$retriever = new class ($callback) implements Retriever {
private Closure $callback;

private string $basePath = '';
Expand Down
14 changes: 12 additions & 2 deletions tests/Structure/StructureTest.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
<?php

use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\Structure\RuntimeExpression;
use Apiboard\OpenAPI\Structure\Structure;

test('it can be json serialized', function () {
$class = new class([]) extends Structure
{
$class = new class ([]) extends Structure {
};

expect($class->jsonSerialize())->toBe([]);
});

test('it optionally accepts a JSON Pointer as context', function () {
$pointer = new JsonPointer('/info/title');
$class = new class ([], $pointer) extends Structure {
};

$result = $class->pointer();

expect($result)->toEqual($pointer);
});

test('it is used as parent where applicable', function (string $class) {
$parent = get_parent_class($class);

Expand Down