Code Duplication    Length = 52-55 lines in 3 locations

test/Serializer/JsonApiSerializerTest.php 3 locations

@@ 73-127 (lines=55) @@
70
        $this->assertSame($expectedJson, $scope->toJson());
71
    }
72
73
    public function testSerializingItemResourceWithHasOneDasherizedInclude()
74
    {
75
        $this->manager->parseIncludes('co-author');
76
77
        $bookData = [
78
            'id' => 1,
79
            'title' => 'Foo',
80
            'year' => '1991',
81
            '_author' => [
82
                'id' => 1,
83
                'name' => 'Dave',
84
            ],
85
            '_co_author' => [
86
                'id' => 2,
87
                'name' => 'Jim',
88
            ],
89
        ];
90
91
        $resource = new Item($bookData, new JsonApiBookTransformer(), 'books');
92
93
        $scope = new Scope($this->manager, $resource);
94
95
        $expected = [
96
            'data' => [
97
                'type' => 'books',
98
                'id' => '1',
99
                'attributes' => [
100
                    'title' => 'Foo',
101
                    'year' => 1991,
102
                ],
103
                'relationships' => [
104
                    'co-author' => [
105
                        'data' => [
106
                            'type' => 'people',
107
                            'id' => '2',
108
                        ],
109
                    ],
110
                ],
111
            ],
112
            'included' => [
113
                [
114
                    'type' => 'people',
115
                    'id' => '2',
116
                    'attributes' => [
117
                        'name' => 'Jim',
118
                    ],
119
                ],
120
            ],
121
        ];
122
123
        $this->assertSame($expected, $scope->toArray());
124
125
        $expectedJson = '{"data":{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"relationships":{"co-author":{"data":{"type":"people","id":"2"}}}},"included":[{"type":"people","id":"2","attributes":{"name":"Jim"}}]}';
126
        $this->assertSame($expectedJson, $scope->toJson());
127
    }
128
129
    public function testSerializingItemResourceWithEmptyHasOneInclude()
130
    {
@@ 344-395 (lines=52) @@
341
        $this->assertSame($expectedJson, $scope->toJson());
342
    }
343
344
    public function testSerializingCollectionResourceWithoutIncludes()
345
    {
346
        $booksData = [
347
            [
348
                'id' => 1,
349
                'title' => 'Foo',
350
                'year' => '1991',
351
                '_author' => [
352
                    'id' => 1,
353
                    'name' => 'Dave',
354
                ],
355
            ],
356
            [
357
                'id' => 2,
358
                'title' => 'Bar',
359
                'year' => '1997',
360
                '_author' => [
361
                    'id' => 2,
362
                    'name' => 'Bob',
363
                ],
364
            ],
365
        ];
366
367
        $resource = new Collection($booksData, new JsonApiBookTransformer(), 'books');
368
        $scope = new Scope($this->manager, $resource);
369
370
        $expected = [
371
            'data' => [
372
                [
373
                    'type' => 'books',
374
                    'id' => '1',
375
                    'attributes' => [
376
                        'title' => 'Foo',
377
                        'year' => 1991,
378
                    ],
379
                ],
380
                [
381
                    'type' => 'books',
382
                    'id' => '2',
383
                    'attributes' => [
384
                        'title' => 'Bar',
385
                        'year' => 1997,
386
                    ],
387
                ],
388
            ],
389
        ];
390
391
        $this->assertSame($expected, $scope->toArray());
392
393
        $expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997}}]}';
394
        $this->assertSame($expectedJson, $scope->toJson());
395
    }
396
397
    public function testSerializingCollectionResourceWithHasOneInclude()
398
    {
@@ 763-817 (lines=55) @@
760
        $this->assertSame($expectedJson, $scope->toJson());
761
    }
762
763
    public function testSerializingCollectionResourceWithMeta()
764
    {
765
        $booksData = [
766
            [
767
                'id' => 1,
768
                'title' => 'Foo',
769
                'year' => '1991',
770
                '_author' => [
771
                    'name' => 'Dave',
772
                ],
773
            ],
774
            [
775
                'id' => 2,
776
                'title' => 'Bar',
777
                'year' => '1997',
778
                '_author' => [
779
                    'name' => 'Bob',
780
                ],
781
            ],
782
        ];
783
784
        $resource = new Collection($booksData, new JsonApiBookTransformer(), 'books');
785
        $resource->setMetaValue('foo', 'bar');
786
787
        $scope = new Scope($this->manager, $resource);
788
789
        $expected = [
790
            'data' => [
791
                [
792
                    'type' => 'books',
793
                    'id' => '1',
794
                    'attributes' => [
795
                        'title' => 'Foo',
796
                        'year' => 1991,
797
                    ],
798
                ],
799
                [
800
                    'type' => 'books',
801
                    'id' => '2',
802
                    'attributes' => [
803
                        'title' => 'Bar',
804
                        'year' => 1997,
805
                    ],
806
                ],
807
            ],
808
            'meta' => [
809
                'foo' => 'bar',
810
            ],
811
        ];
812
813
        $this->assertSame($expected, $scope->toArray());
814
815
        $expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997}}],"meta":{"foo":"bar"}}';
816
        $this->assertSame($expectedJson, $scope->toJson());
817
    }
818
819
    public function testSerializingCollectionResourceWithDuplicatedIncludeData()
820
    {