Skip to content

Commit b1a2d05

Browse files
authored
feat: support laravel v12 (#29)
* feat: support laravel v12
1 parent 5804d8b commit b1a2d05

File tree

10 files changed

+37
-2
lines changed

10 files changed

+37
-2
lines changed

.github/workflows/php.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ jobs:
2121
exclude:
2222
- php_version: '8.1'
2323
laravel_version: '^11.0'
24+
- php_version: '8.1'
25+
laravel_version: '^12.0'
2426

2527

2628
steps:

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"illuminate/support": "^9.0|^10.0|^11.0|^12.0"
1717
},
1818
"require-dev": {
19-
"phpunit/phpunit": "^9.0|^10.0",
19+
"phpunit/phpunit": "^9.0|^10.0|^11.0|^12.0",
2020
"orchestra/testbench": "^7.5|^8.0|^9.0|^10.0",
2121
"phpstan/phpstan": "^1.9.18"
2222
},

tests/Unit/Descriptors/DescriptorsTraitTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Ark4ne\JsonApi\Resources\JsonApiCollection;
1818
use Ark4ne\JsonApi\Resources\JsonApiResource;
1919
use Closure;
20+
use PHPUnit\Framework\Attributes\DataProvider;
2021
use stdClass;
2122
use Test\Support\Reflect;
2223
use Test\TestCase;
@@ -42,6 +43,7 @@ public static function methods()
4243
/**
4344
* @dataProvider methods
4445
*/
46+
#[DataProvider('methods')]
4547
public function testDescriptorTrait($expected, $method, ...$args)
4648
{
4749
$mock = new class extends stdClass {

tests/Unit/Descriptors/RelationTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Database\Eloquent\Model;
99
use Illuminate\Http\Request;
1010
use Illuminate\Http\Resources\MissingValue;
11+
use PHPUnit\Framework\Attributes\DataProvider;
1112
use stdClass;
1213
use Test\app\Http\Resources\UserResource;
1314
use Test\Support\Reflect;
@@ -27,6 +28,7 @@ public static function resourceProvider(): array
2728
/**
2829
* @dataProvider resourceProvider
2930
*/
31+
#[DataProvider('resourceProvider')]
3032
public function testIncluded($model)
3133
{
3234
$stub = new RelationOne(UserResource::class, fn() => null);
@@ -55,6 +57,7 @@ public function testIncluded($model)
5557
/**
5658
* @dataProvider resourceProvider
5759
*/
60+
#[DataProvider('resourceProvider')]
5861
public function testMeta($model)
5962
{
6063
$stub = new RelationOne(UserResource::class, fn() => null);
@@ -75,6 +78,7 @@ public function testMeta($model)
7578
/**
7679
* @dataProvider resourceProvider
7780
*/
81+
#[DataProvider('resourceProvider')]
7882
public function testLinks($model)
7983
{
8084
$stub = new RelationOne(UserResource::class, fn() => null);
@@ -104,9 +108,10 @@ public static function dataWhenLoaded()
104108
/**
105109
* @dataProvider dataWhenLoaded
106110
*/
111+
#[DataProvider('dataWhenLoaded')]
107112
public function testWhenLoaded($expectedAttr, $relation, $invokedAttr)
108113
{
109-
$mockModel = $this->getMockForAbstractClass(Model::class, mockedMethods: ['relationLoaded']);
114+
$mockModel = $this->getMockBuilder(Model::class)->onlyMethods(['relationLoaded'])->getMock();
110115
$mockModel->expects(self::once())->method('relationLoaded')->with($expectedAttr)->willReturn(false);
111116

112117
$stub = new RelationOne(UserResource::class, $relation);
@@ -128,6 +133,7 @@ public static function dataWhenPivotLoaded()
128133
/**
129134
* @dataProvider dataWhenPivotLoaded
130135
*/
136+
#[DataProvider('dataWhenPivotLoaded')]
131137
public function testWhenPivotLoaded($expectedAttr, $relation, $invokedAttr)
132138
{
133139
$model = new class extends Model {
@@ -144,6 +150,7 @@ public function testWhenPivotLoaded($expectedAttr, $relation, $invokedAttr)
144150
/**
145151
* @dataProvider resourceProvider
146152
*/
153+
#[DataProvider('resourceProvider')]
147154
public function testRelationMissing($model)
148155
{
149156
$missing = RelationMissing::fromRelationship(new Relationship(UserResource::class, fn() => null));

tests/Unit/Descriptors/ValueTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Illuminate\Database\Eloquent\Model;
1818
use Illuminate\Http\Request;
1919
use Illuminate\Http\Resources\MissingValue;
20+
use PHPUnit\Framework\Attributes\DataProvider;
2021
use stdClass;
2122
use Test\Support\Reflect;
2223
use Test\TestCase;
@@ -89,6 +90,7 @@ public static function modelsValues()
8990
/**
9091
* @dataProvider values
9192
*/
93+
#[DataProvider('values')]
9294
public function testConvertValue($class, $value, $excepted)
9395
{
9496
/** @var \Ark4ne\JsonApi\Descriptors\Values\Value $v */
@@ -99,6 +101,7 @@ public function testConvertValue($class, $value, $excepted)
99101
/**
100102
* @dataProvider modelsValues
101103
*/
104+
#[DataProvider('modelsValues')]
102105
public function testValueFor($model, $class, $value, $excepted)
103106
{
104107
data_set($model, 'attr', $value);
@@ -114,6 +117,7 @@ public function testValueFor($model, $class, $value, $excepted)
114117
/**
115118
* @dataProvider modelsValues
116119
*/
120+
#[DataProvider('modelsValues')]
117121
public function testValueForWithNull($model, $class, $value, $excepted)
118122
{
119123
data_set($model, 'attr', null);
@@ -126,6 +130,7 @@ public function testValueForWithNull($model, $class, $value, $excepted)
126130
/**
127131
* @dataProvider modelsValues
128132
*/
133+
#[DataProvider('modelsValues')]
129134
public function testValueForWithNullAndNonNullable($model, $class, $value, $_, $excepted)
130135
{
131136
data_set($model, 'attr', null);
@@ -144,6 +149,7 @@ public function testValueForWithNullAndNonNullable($model, $class, $value, $_, $
144149
/**
145150
* @dataProvider models
146151
*/
152+
#[DataProvider('models')]
147153
public function testWhenNoNull($model)
148154
{
149155
data_set($model, 'attr', null);
@@ -175,6 +181,7 @@ public function testWhenAppended()
175181
/**
176182
* @dataProvider models
177183
*/
184+
#[DataProvider('models')]
178185
public function testWhenFilled(&$model)
179186
{
180187
data_set($model, 'attr', null);
@@ -191,6 +198,7 @@ public function testWhenFilled(&$model)
191198
/**
192199
* @dataProvider models
193200
*/
201+
#[DataProvider('models')]
194202
public function testUnless(&$model)
195203
{
196204
data_set($model, 'attr', 'abc');
@@ -209,6 +217,7 @@ public function testUnless(&$model)
209217
/**
210218
* @dataProvider models
211219
*/
220+
#[DataProvider('models')]
212221
public function testWhenInFields($model)
213222
{
214223
Fields::through('test', function () use (&$model) {

tests/Unit/Resources/Concerns/ConditionallyLoadsAttributesTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Illuminate\Http\Resources\Json\JsonResource;
1414
use Illuminate\Http\Resources\MergeValue;
1515
use Illuminate\Http\Resources\MissingValue;
16+
use PHPUnit\Framework\Attributes\DataProvider;
1617
use Test\app\Http\Resources\UserResource;
1718
use Test\Support\Reflect;
1819
use Test\TestCase;
@@ -30,6 +31,7 @@ public static function data()
3031
/**
3132
* @dataProvider data
3233
*/
34+
#[DataProvider('data')]
3335
public function testWhenInclude($expected, $property, $query)
3436
{
3537
$request = new Request(['include' => implode(',', $query)]);
@@ -47,6 +49,7 @@ public function testWhenInclude($expected, $property, $query)
4749
/**
4850
* @dataProvider data
4951
*/
52+
#[DataProvider('data')]
5053
public function testWhenInFields($expected, $property, $query)
5154
{
5255
$request = new Request(['fields' => ['type' => implode(',', $query)]]);

tests/Unit/Support/ArrTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Test\Unit\Support;
44

55
use Ark4ne\JsonApi\Support\Arr;
6+
use PHPUnit\Framework\Attributes\DataProvider;
67
use Test\TestCase;
78

89
class ArrTest extends TestCase
@@ -63,6 +64,7 @@ public static function mergeProvider()
6364
/**
6465
* @dataProvider mergeProvider
6566
*/
67+
#[DataProvider('mergeProvider')]
6668
public function testMerge($expected, $base, $with)
6769
{
6870
$this->assertEquals($expected, Arr::merge($base, $with));
@@ -91,6 +93,7 @@ public static function washProvider()
9193
/**
9294
* @dataProvider washProvider
9395
*/
96+
#[DataProvider('washProvider')]
9497
public function testWash($expected, $base)
9598
{
9699
$this->assertEquals($expected, Arr::wash($base));
@@ -118,6 +121,7 @@ public static function toArrayProvider()
118121
/**
119122
* @dataProvider toArrayProvider
120123
*/
124+
#[DataProvider('toArrayProvider')]
121125
public function testToArray($expected, $base)
122126
{
123127
$this->assertEquals($expected, Arr::toArray($base));

tests/Unit/Support/FieldsTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Ark4ne\JsonApi\Support\Fields;
66
use Illuminate\Http\Request;
7+
use PHPUnit\Framework\Attributes\DataProvider;
78
use Test\TestCase;
89

910
class FieldsTest extends TestCase
@@ -22,6 +23,7 @@ public static function fieldsGetProvider()
2223
/**
2324
* @dataProvider fieldsGetProvider
2425
*/
26+
#[DataProvider('fieldsGetProvider')]
2527
public function testGet(array $query, string $type, ?array $expected)
2628
{
2729
$this->assertEquals($expected, Fields::get(new Request(['fields' => $query]), $type));

tests/Unit/Support/ValuesTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Http\Resources\MergeValue;
88
use Illuminate\Http\Resources\MissingValue;
99
use Illuminate\Http\Resources\PotentiallyMissing;
10+
use PHPUnit\Framework\Attributes\DataProvider;
1011
use Test\TestCase;
1112

1213
class ValuesTest extends TestCase
@@ -134,6 +135,7 @@ public static function dataAttribute()
134135
/**
135136
* @dataProvider dataAttribute
136137
*/
138+
#[DataProvider('dataAttribute')]
137139
public function testHasAttribute($data, $attribute, $expected)
138140
{
139141
$this->assertEquals($expected, Values::hasAttribute($data, $attribute));
@@ -142,6 +144,7 @@ public function testHasAttribute($data, $attribute, $expected)
142144
/**
143145
* @dataProvider dataAttribute
144146
*/
147+
#[DataProvider('dataAttribute')]
145148
public function testGetAttribute($data, $attribute, $has, $expected)
146149
{
147150
$this->assertEquals($expected, Values::getAttribute($data, $attribute));

tests/Unit/Support/WithTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Test\Unit\Support;
44

55
use Ark4ne\JsonApi\Support\With;
6+
use PHPUnit\Framework\Attributes\DataProvider;
67
use Test\TestCase;
78

89
class WithTest extends TestCase
@@ -63,6 +64,7 @@ public static function mergeProvider()
6364
/**
6465
* @dataProvider mergeProvider
6566
*/
67+
#[DataProvider('mergeProvider')]
6668
public function testMerge($expected, $base, $with)
6769
{
6870
$this->assertEquals($expected, With::merge($base, $with));
@@ -91,6 +93,7 @@ public static function washProvider()
9193
/**
9294
* @dataProvider washProvider
9395
*/
96+
#[DataProvider('washProvider')]
9497
public function testWash($expected, $base)
9598
{
9699
$this->assertEquals($expected, With::wash($base));

0 commit comments

Comments
 (0)