14
14
use Swis \JsonApi \Client \Link ;
15
15
use Swis \JsonApi \Client \Links ;
16
16
use Swis \JsonApi \Client \Meta ;
17
- use Swis \JsonApi \Client \Parsers \CollectionParser ;
18
17
use Swis \JsonApi \Client \Parsers \DocumentParser ;
19
- use Swis \JsonApi \Client \Parsers \ErrorCollectionParser ;
20
- use Swis \JsonApi \Client \Parsers \ErrorParser ;
21
- use Swis \JsonApi \Client \Parsers \ItemParser ;
22
- use Swis \JsonApi \Client \Parsers \JsonapiParser ;
23
- use Swis \JsonApi \Client \Parsers \LinksParser ;
24
- use Swis \JsonApi \Client \Parsers \MetaParser ;
25
18
use Swis \JsonApi \Client \Tests \AbstractTest ;
26
19
use Swis \JsonApi \Client \Tests \Mocks \Items \ChildItem ;
27
20
use Swis \JsonApi \Client \Tests \Mocks \Items \MasterItem ;
@@ -42,7 +35,7 @@ public function it_can_create_an_instance_using_a_factory_method()
42
35
*/
43
36
public function it_converts_jsondocument_to_document ()
44
37
{
45
- $ parser = $ this -> getDocumentParser ();
38
+ $ parser = DocumentParser:: create ();
46
39
$ document = $ parser ->parse (
47
40
json_encode (
48
41
[
@@ -59,7 +52,7 @@ public function it_converts_jsondocument_to_document()
59
52
*/
60
53
public function it_throws_when_json_is_not_valid ()
61
54
{
62
- $ parser = $ this -> getDocumentParser ();
55
+ $ parser = DocumentParser:: create ();
63
56
64
57
$ this ->expectException (ValidationException::class);
65
58
$ this ->expectExceptionMessage ('Unable to parse JSON data: Malformed UTF-8 characters, possibly incorrectly encoded ' );
@@ -75,7 +68,7 @@ public function it_throws_when_json_is_not_valid()
75
68
*/
76
69
public function it_throws_when_json_is_not_a_jsonapi_document (string $ invalidJson )
77
70
{
78
- $ parser = $ this -> getDocumentParser ();
71
+ $ parser = DocumentParser:: create ();
79
72
80
73
$ this ->expectException (ValidationException::class);
81
74
$ this ->expectExceptionMessage (sprintf ('Document MUST be an object, "%s" given. ' , gettype (json_decode ($ invalidJson , false ))));
@@ -100,7 +93,7 @@ public function provideInvalidJson(): array
100
93
*/
101
94
public function it_throws_when_data_errors_and_meta_are_missing ()
102
95
{
103
- $ parser = $ this -> getDocumentParser ();
96
+ $ parser = DocumentParser:: create ();
104
97
105
98
$ this ->expectException (ValidationException::class);
106
99
$ this ->expectExceptionMessage ('Document MUST contain at least one of the following properties: `data`, `errors`, `meta`. ' );
@@ -113,7 +106,7 @@ public function it_throws_when_data_errors_and_meta_are_missing()
113
106
*/
114
107
public function it_throws_when_both_data_and_errors_are_present ()
115
108
{
116
- $ parser = $ this -> getDocumentParser ();
109
+ $ parser = DocumentParser:: create ();
117
110
118
111
$ this ->expectException (ValidationException::class);
119
112
$ this ->expectExceptionMessage ('The properties `data` and `errors` MUST NOT coexist in Document. ' );
@@ -126,7 +119,7 @@ public function it_throws_when_both_data_and_errors_are_present()
126
119
*/
127
120
public function it_throws_when_included_is_present_but_data_is_not ()
128
121
{
129
- $ parser = $ this -> getDocumentParser ();
122
+ $ parser = DocumentParser:: create ();
130
123
131
124
$ this ->expectException (ValidationException::class);
132
125
$ this ->expectExceptionMessage ('If Document does not contain a `data` property, the `included` property MUST NOT be present either. ' );
@@ -142,7 +135,7 @@ public function it_throws_when_included_is_present_but_data_is_not()
142
135
*/
143
136
public function it_throws_when_data_is_not_an_array_object_or_null ($ invalidData )
144
137
{
145
- $ parser = $ this -> getDocumentParser ();
138
+ $ parser = DocumentParser:: create ();
146
139
147
140
$ this ->expectException (ValidationException::class);
148
141
$ this ->expectExceptionMessage (sprintf ('Document property "data" MUST be null, an array or an object, "%s" given. ' , gettype (json_decode ($ invalidData , false )->data )));
@@ -168,7 +161,7 @@ public function provideInvalidData(): array
168
161
*/
169
162
public function it_throws_when_included_is_not_an_array ($ invalidIncluded )
170
163
{
171
- $ parser = $ this -> getDocumentParser ();
164
+ $ parser = DocumentParser:: create ();
172
165
173
166
$ this ->expectException (ValidationException::class);
174
167
$ this ->expectExceptionMessage (sprintf ('Document property "included" MUST be an array, "%s" given. ' , gettype (json_decode ($ invalidIncluded , false )->included )));
@@ -193,7 +186,7 @@ public function provideInvalidIncluded(): array
193
186
*/
194
187
public function it_throws_when_it_finds_duplicate_resources ()
195
188
{
196
- $ parser = $ this -> getDocumentParser ();
189
+ $ parser = DocumentParser:: create ();
197
190
198
191
$ this ->expectException (ValidationException::class);
199
192
$ this ->expectExceptionMessage ('Resources MUST be unique based on their `type` and `id`, 1 duplicate(s) found. ' );
@@ -229,7 +222,7 @@ public function it_throws_when_it_finds_duplicate_resources()
229
222
*/
230
223
public function it_parses_a_resource_document ()
231
224
{
232
- $ parser = $ this -> getDocumentParser ();
225
+ $ parser = DocumentParser:: create ();
233
226
$ document = $ parser ->parse (
234
227
json_encode (
235
228
[
@@ -255,7 +248,7 @@ public function it_parses_a_resource_document()
255
248
*/
256
249
public function it_parses_a_resource_collection_document ()
257
250
{
258
- $ parser = $ this -> getDocumentParser ();
251
+ $ parser = DocumentParser:: create ();
259
252
$ document = $ parser ->parse (
260
253
json_encode (
261
254
[
@@ -284,7 +277,7 @@ public function it_parses_a_resource_collection_document()
284
277
*/
285
278
public function it_parses_a_document_without_data ()
286
279
{
287
- $ parser = $ this -> getDocumentParser ();
280
+ $ parser = DocumentParser:: create ();
288
281
$ document = $ parser ->parse (
289
282
json_encode (
290
283
[
@@ -303,7 +296,7 @@ public function it_parses_a_document_without_data()
303
296
*/
304
297
public function it_parses_included ()
305
298
{
306
- $ parser = $ this -> getDocumentParser ();
299
+ $ parser = DocumentParser:: create ();
307
300
$ document = $ parser ->parse (
308
301
json_encode (
309
302
[
@@ -336,7 +329,7 @@ public function it_links_singular_relations_to_items_from_included()
336
329
$ typeMapper = new TypeMapper ();
337
330
$ typeMapper ->setMapping ('master ' , MasterItem::class);
338
331
$ typeMapper ->setMapping ('child ' , ChildItem::class);
339
- $ parser = $ this -> getDocumentParser ($ typeMapper );
332
+ $ parser = DocumentParser:: create ($ typeMapper );
340
333
341
334
$ document = $ parser ->parse (
342
335
json_encode (
@@ -382,7 +375,7 @@ public function it_does_not_link_empty_singular_relations()
382
375
$ typeMapper = new TypeMapper ();
383
376
$ typeMapper ->setMapping ('master ' , MasterItem::class);
384
377
$ typeMapper ->setMapping ('child ' , ChildItem::class);
385
- $ parser = $ this -> getDocumentParser ($ typeMapper );
378
+ $ parser = DocumentParser:: create ($ typeMapper );
386
379
387
380
$ document = $ parser ->parse (
388
381
json_encode (
@@ -425,7 +418,7 @@ public function it_links_plural_relations_to_items_from_included()
425
418
$ typeMapper = new TypeMapper ();
426
419
$ typeMapper ->setMapping ('master ' , MasterItem::class);
427
420
$ typeMapper ->setMapping ('child ' , ChildItem::class);
428
- $ parser = $ this -> getDocumentParser ($ typeMapper );
421
+ $ parser = DocumentParser:: create ($ typeMapper );
429
422
430
423
$ document = $ parser ->parse (
431
424
json_encode (
@@ -486,7 +479,7 @@ public function it_does_not_link_empty_plural_relations()
486
479
$ typeMapper = new TypeMapper ();
487
480
$ typeMapper ->setMapping ('master ' , MasterItem::class);
488
481
$ typeMapper ->setMapping ('child ' , ChildItem::class);
489
- $ parser = $ this -> getDocumentParser ($ typeMapper );
482
+ $ parser = DocumentParser:: create ($ typeMapper );
490
483
491
484
$ document = $ parser ->parse (
492
485
json_encode (
@@ -535,7 +528,7 @@ public function it_does_not_link_empty_plural_relations()
535
528
*/
536
529
public function it_parses_links ()
537
530
{
538
- $ parser = $ this -> getDocumentParser ();
531
+ $ parser = DocumentParser:: create ();
539
532
540
533
$ document = $ parser ->parse (
541
534
json_encode (
@@ -558,7 +551,7 @@ public function it_parses_links()
558
551
*/
559
552
public function it_parses_errors ()
560
553
{
561
- $ parser = $ this -> getDocumentParser ();
554
+ $ parser = DocumentParser:: create ();
562
555
563
556
$ document = $ parser ->parse (
564
557
json_encode (
@@ -583,7 +576,7 @@ public function it_parses_errors()
583
576
*/
584
577
public function it_parses_meta ()
585
578
{
586
- $ parser = $ this -> getDocumentParser ();
579
+ $ parser = DocumentParser:: create ();
587
580
588
581
$ document = $ parser ->parse (
589
582
json_encode (
@@ -606,7 +599,7 @@ public function it_parses_meta()
606
599
*/
607
600
public function it_parses_jsonapi ()
608
601
{
609
- $ parser = $ this -> getDocumentParser ();
602
+ $ parser = DocumentParser:: create ();
610
603
611
604
$ document = $ parser ->parse (
612
605
json_encode (
@@ -623,20 +616,4 @@ public function it_parses_jsonapi()
623
616
624
617
static ::assertEquals (new Jsonapi ('1.0 ' ), $ document ->getJsonapi ());
625
618
}
626
-
627
- private function getDocumentParser (TypeMapper $ typeMapper = null ): DocumentParser
628
- {
629
- $ metaParser = new MetaParser ();
630
- $ linksParser = new LinksParser ($ metaParser );
631
- $ itemParser = new ItemParser ($ typeMapper ?? new TypeMapper (), $ linksParser , $ metaParser );
632
-
633
- return new DocumentParser (
634
- $ itemParser ,
635
- new CollectionParser ($ itemParser ),
636
- new ErrorCollectionParser (new ErrorParser ($ linksParser , $ metaParser )),
637
- $ linksParser ,
638
- new JsonapiParser ($ metaParser ),
639
- $ metaParser
640
- );
641
- }
642
619
}
0 commit comments