Skip to content

Commit

Permalink
update: drop PHP 8.1 and Laravel 9 support, add PHP 8.3 and Laravel 1…
Browse files Browse the repository at this point in the history
…1 support
  • Loading branch information
Jasonej committed Mar 8, 2024
1 parent 764c5d8 commit 09b6967
Show file tree
Hide file tree
Showing 9 changed files with 62 additions and 57 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ jobs:
strategy:
fail-fast: true
matrix:
php: [8.1, 8.2]
laravel: [9.0, 10.0]
php: [8.2, 8.3]
laravel: [10.0, 11.0]
stability: [prefer-lowest, prefer-stable]
include:
- laravel: 9.0
Expand Down
10 changes: 5 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "sourcetoad/enhanced-resources",
"description": "Laravel's API Resources enhanced.",
"minimum-stability": "stable",
"minimum-stability": "dev",
"license": "MIT",
"authors": [
{
Expand All @@ -20,11 +20,11 @@
}
},
"require": {
"php": "^8.0",
"laravel/framework": "^9.0|^10.0"
"php": "^8.2",
"laravel/framework": "^10.0|^11.0|11.x-dev"
},
"require-dev": {
"orchestra/testbench": "^7.0|^8.0",
"phpunit/phpunit": "^9.5|^10.0"
"orchestra/testbench": "^8.0|^9.0|9.x-dev",
"phpunit/phpunit": "^10.0|^11.0"
}
}
16 changes: 8 additions & 8 deletions tests/Unit/AnonymousResourceCollectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@

namespace Sourcetoad\EnhancedResources\Tests\Unit;

use PHPUnit\Framework\Attributes\DataProvider;
use Sourcetoad\EnhancedResources\AnonymousResourceCollection;
use Sourcetoad\EnhancedResources\ResourceCollection;
use Sourcetoad\EnhancedResources\Tests\ExplicitDefaultResource;
use Sourcetoad\EnhancedResources\Tests\ImplicitDefaultCollection;
use Sourcetoad\EnhancedResources\Tests\ImplicitDefaultResource;
use Sourcetoad\EnhancedResources\Tests\TestCase;
use stdClass;

class AnonymousResourceCollectionTest extends TestCase
{
/** @dataProvider formatProvider */
#[DataProvider('formatProvider')]
public function test_anonymous_collection_records_are_formatted_correctly(
AnonymousResourceCollection $collection,
array $expectedData
Expand All @@ -26,7 +26,7 @@ public function test_anonymous_collection_records_are_formatted_correctly(
$this->assertSame($expectedData, $actualData);
}

/** @dataProvider modificationProvider */
#[DataProvider('modificationProvider')]
public function test_anonymous_collection_can_be_modified_dynamically(
ResourceCollection $resource,
array $expectedData,
Expand Down Expand Up @@ -62,7 +62,7 @@ public function test_response_status_can_be_set(): void

# region Data Providers

public function formatProvider(): array
public static function formatProvider(): array
{
$john = new stdClass;
$john->id = 1;
Expand All @@ -76,7 +76,7 @@ public function formatProvider(): array

return [
'implicit default is used' => [
'resource' => ImplicitDefaultResource::collection([$john, $jane]),
'collection' => ImplicitDefaultResource::collection([$john, $jane]),
'expectedData' => [
[
'first_name' => 'John',
Expand All @@ -91,7 +91,7 @@ public function formatProvider(): array
],
],
'explicit default is used' => [
'resource' => ExplicitDefaultResource::collection([$john, $jane]),
'collection' => ExplicitDefaultResource::collection([$john, $jane]),
'expectedData' => [
[
'first_name' => 'John',
Expand All @@ -106,7 +106,7 @@ public function formatProvider(): array
],
],
'specified format is used' => [
'resource' => ExplicitDefaultResource::collection([$john, $jane])->format('bar'),
'collection' => ExplicitDefaultResource::collection([$john, $jane])->format('bar'),
'expectedData' => [
[
'id' => 1,
Expand All @@ -127,7 +127,7 @@ public function formatProvider(): array
];
}

public function modificationProvider(): array
public static function modificationProvider(): array
{
$john = new stdClass;
$john->id = 1;
Expand Down
5 changes: 3 additions & 2 deletions tests/Unit/Enhancements/ExceptTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Sourcetoad\EnhancedResources\Tests\Unit\Enhancements;

use PHPUnit\Framework\Attributes\DataProvider;
use Sourcetoad\EnhancedResources\Enhancements\Except;
use Sourcetoad\EnhancedResources\Enhancements\Traits\HasExceptEnhancement;
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
Expand All @@ -12,7 +13,7 @@

class ExceptTest extends TestCase
{
/** @dataProvider resourceProvider */
#[DataProvider('resourceProvider')]
public function test_except_enhancement_can_be_applied_to_resources(
Resource $resource,
array $expectedData,
Expand All @@ -26,7 +27,7 @@ public function test_except_enhancement_can_be_applied_to_resources(

# region Data Providers

public function resourceProvider(): array
public static function resourceProvider(): array
{
return [
'applied manually' => [
Expand Down
5 changes: 3 additions & 2 deletions tests/Unit/Enhancements/OnlyTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Sourcetoad\EnhancedResources\Tests\Unit\Enhancements;

use PHPUnit\Framework\Attributes\DataProvider;
use Sourcetoad\EnhancedResources\Enhancements\Only;
use Sourcetoad\EnhancedResources\Enhancements\Traits\HasOnlyEnhancement;
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
Expand All @@ -12,7 +13,7 @@

class OnlyTest extends TestCase
{
/** @dataProvider resourceProvider */
#[DataProvider('resourceProvider')]
public function test_only_enhancement_can_be_applied_to_resources(
Resource $resource,
array $expectedData,
Expand All @@ -26,7 +27,7 @@ public function test_only_enhancement_can_be_applied_to_resources(

# region Data Providers

public function resourceProvider(): array
public static function resourceProvider(): array
{
return [
'applied manually' => [
Expand Down
15 changes: 8 additions & 7 deletions tests/Unit/Formatting/FormatDefinitionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Sourcetoad\EnhancedResources\Tests\Unit\Formatting;

use Closure;
use PHPUnit\Framework\Attributes\DataProvider;
use ReflectionMethod;
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
Expand All @@ -13,7 +14,7 @@

class FormatDefinitionTest extends TestCase
{
/** @dataProvider nameDetectionProvider */
#[DataProvider('nameDetectionProvider')]
public function test_name_is_properly_detected(ReflectionMethod $method, Closure $assertions): void
{
# Act
Expand All @@ -23,7 +24,7 @@ public function test_name_is_properly_detected(ReflectionMethod $method, Closure
$assertions($definition);
}

/** @dataProvider defaultDetectionProvider */
#[DataProvider('defaultDetectionProvider')]
public function test_explicit_default_is_properly_detected(ReflectionMethod $method, bool $expected): void
{
# Arrange
Expand All @@ -38,7 +39,7 @@ public function test_explicit_default_is_properly_detected(ReflectionMethod $met

# region Data Providers

public function defaultDetectionProvider(): array
public static function defaultDetectionProvider(): array
{
$subject = new class {
#[Format('bar')]
Expand All @@ -60,7 +61,7 @@ public function foo() {}
];
}

public function nameDetectionProvider(): array
public static function nameDetectionProvider(): array
{
$subject = new class {
#[Format('bar')]
Expand All @@ -74,19 +75,19 @@ public function foo() {}
'implicit name' => [
'method' => new ReflectionMethod($subject, 'foo'),
'assertions' => function (FormatDefinition $definition) {
$this->assertSame('foo', $definition->name());
static::assertSame('foo', $definition->name());
},
],
'explicit name' => [
'method' => new ReflectionMethod($subject, 'barFormat'),
'assertions' => function (FormatDefinition $definition) {
$this->assertSame('bar', $definition->name());
static::assertSame('bar', $definition->name());
}
],
'alias' => [
'method' => new ReflectionMethod($subject, 'foo'),
'assertions' => function (FormatDefinition $definition) {
$this->assertContains('fooAlias', $definition->names());
static::assertContains('fooAlias', $definition->names());
}
],
];
Expand Down
39 changes: 20 additions & 19 deletions tests/Unit/Formatting/FormatManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Sourcetoad\EnhancedResources\Tests\Unit\Formatting;

use Closure;
use PHPUnit\Framework\Attributes\DataProvider;
use Sourcetoad\EnhancedResources\Exceptions\FormatNameCollisionException;
use Sourcetoad\EnhancedResources\Exceptions\InvalidFormatException;
use Sourcetoad\EnhancedResources\Exceptions\MultipleDefaultFormatsException;
Expand Down Expand Up @@ -35,7 +36,7 @@ public function foo() {}
$this->assertSame(['bar', 'foo', 'fooAlias'], $formats->keys()->all());
}

/** @dataProvider formatNameCollisionProvider */
#[DataProvider('formatNameCollisionProvider')]
public function test_format_name_collisions_are_prevented(object $subject): void
{
# Expect
Expand All @@ -45,7 +46,7 @@ public function test_format_name_collisions_are_prevented(object $subject): void
new FormatManager($subject);
}

/** @dataProvider defaultFormatProvider */
#[DataProvider('defaultFormatProvider')]
public function test_default_format_is_detected_properly(object $subject, string $expectedFormat): void
{
# Act
Expand Down Expand Up @@ -73,7 +74,7 @@ public function foo() {}
new FormatManager($subject);
}

/** @dataProvider currentFormatProvider */
#[DataProvider('currentFormatProvider')]
public function test_current_format_can_be_set_and_retrieved(Closure $setup, string $expectedFormat): void
{
# Act
Expand All @@ -85,7 +86,7 @@ public function test_current_format_can_be_set_and_retrieved(Closure $setup, str
$this->assertContains($expectedFormat, $manager->current()->names());
}

/** @dataProvider formatExistenceProvider */
#[DataProvider('formatExistenceProvider')]
public function test_checking_for_a_formats_existence(object $subject, string $formatName, bool $expectedResult): void
{
# Arrange
Expand All @@ -98,7 +99,7 @@ public function test_checking_for_a_formats_existence(object $subject, string $f
$this->assertSame($expectedResult, $actualResult);
}

/** @dataProvider formatExistenceProvider */
#[DataProvider('formatExistenceProvider')]
public function test_checking_for_a_formats_non_existence(object $subject, string $formatName, bool $expectedResult): void
{
# Arrange
Expand Down Expand Up @@ -128,7 +129,7 @@ public function foo() {}

# region Data Providers

public function currentFormatProvider(): array
public static function currentFormatProvider(): array
{
return [
'implicit default is used as the initial current format' => [
Expand Down Expand Up @@ -181,41 +182,41 @@ public function foo() {}
];
}

public function defaultFormatProvider(): array
public static function defaultFormatProvider(): array
{
return [
'implicit default' => [
'object' => new class {
'subject' => new class {
#[Format]
public function foo() {}
},
'foo',
'expectedFormat' => 'foo',
],
'explicit default' => [
'object' => new class {
'subject' => new class {
#[Format]
public function bar() {}

#[IsDefault, Format]
public function foo() {}
},
'foo',
'expectedFormat' => 'foo',
],
'inherited default' => [
'object' => new class extends ParentClass {},
'foo',
'subject' => new class extends ParentClass {},
'expectedFormat' => 'foo',
],
'overridden default' => [
'object' => new class extends ParentClass {
'subject' => new class extends ParentClass {
#[IsDefault, Format]
public function bar() {}
},
'bar',
'expectedFormat' => 'bar',
],
];
}

public function formatExistenceProvider(): array
public static function formatExistenceProvider(): array
{
return [
'implicit format exists' => [
Expand Down Expand Up @@ -261,11 +262,11 @@ public function foo() {}
];
}

public function formatNameCollisionProvider(): array
public static function formatNameCollisionProvider(): array
{
return [
'explicit/explicit' => [
'object' => new class {
'subject' => new class {
#[Format('foo')]
public function formatOne() {}

Expand All @@ -274,7 +275,7 @@ public function formatTwo() {}
},
],
'explicit/implicit' => [
'object' => new class {
'subject' => new class {
#[Format]
public function foo() {}

Expand Down
Loading

0 comments on commit 09b6967

Please sign in to comment.