• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

api-platform / core / 10639694367

30 Aug 2024 10:03PM UTC coverage: 7.667% (+0.7%) from 6.957%
10639694367

push

github

web-flow
Merge 3.4

Merge 3.4

0 of 165 new or added lines in 5 files covered. (0.0%)

7500 existing lines in 290 files now uncovered.

12514 of 163211 relevant lines covered (7.67%)

22.86 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/State/Tests/Util/RequestAttributesExtractorTest.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\State\Tests\Util;
15

16
use ApiPlatform\State\Util\RequestAttributesExtractor;
17
use PHPUnit\Framework\TestCase;
18
use Symfony\Component\HttpFoundation\Request;
19

20
/**
21
 * @author Kévin Dunglas <dunglas@gmail.com>
22
 */
23
class RequestAttributesExtractorTest extends TestCase
24
{
25
    public function testExtractCollectionAttributes(): void
26
    {
NEW
27
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'post']);
×
28

NEW
29
        $this->assertEquals([
×
NEW
30
            'resource_class' => 'Foo',
×
NEW
31
            'operation_name' => 'post',
×
NEW
32
            'receive' => true,
×
NEW
33
            'respond' => true,
×
NEW
34
            'persist' => true,
×
NEW
35
            'has_composite_identifier' => false,
×
NEW
36
        ], RequestAttributesExtractor::extractAttributes($request));
×
37
    }
38

39
    public function testExtractItemAttributes(): void
40
    {
NEW
41
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get']);
×
42

NEW
43
        $this->assertEquals([
×
NEW
44
            'resource_class' => 'Foo',
×
NEW
45
            'operation_name' => 'get',
×
NEW
46
            'receive' => true,
×
NEW
47
            'respond' => true,
×
NEW
48
            'persist' => true,
×
NEW
49
            'has_composite_identifier' => false,
×
NEW
50
        ], RequestAttributesExtractor::extractAttributes($request));
×
51
    }
52

53
    public function testExtractReceive(): void
54
    {
NEW
55
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_receive' => '0']);
×
56

NEW
57
        $this->assertEquals([
×
NEW
58
            'resource_class' => 'Foo',
×
NEW
59
            'operation_name' => 'get',
×
NEW
60
            'receive' => false,
×
NEW
61
            'respond' => true,
×
NEW
62
            'persist' => true,
×
NEW
63
            'has_composite_identifier' => false,
×
NEW
64
        ], RequestAttributesExtractor::extractAttributes($request));
×
65

NEW
66
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_receive' => '1']);
×
67

NEW
68
        $this->assertEquals([
×
NEW
69
            'resource_class' => 'Foo',
×
NEW
70
            'operation_name' => 'get',
×
NEW
71
            'receive' => true,
×
NEW
72
            'respond' => true,
×
NEW
73
            'persist' => true,
×
NEW
74
            'has_composite_identifier' => false,
×
NEW
75
        ], RequestAttributesExtractor::extractAttributes($request));
×
76

NEW
77
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get']);
×
78

NEW
79
        $this->assertEquals([
×
NEW
80
            'resource_class' => 'Foo',
×
NEW
81
            'operation_name' => 'get',
×
NEW
82
            'receive' => true,
×
NEW
83
            'respond' => true,
×
NEW
84
            'persist' => true,
×
NEW
85
            'has_composite_identifier' => false,
×
NEW
86
        ], RequestAttributesExtractor::extractAttributes($request));
×
87
    }
88

89
    public function testExtractRespond(): void
90
    {
NEW
91
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_respond' => '0']);
×
92

NEW
93
        $this->assertEquals([
×
NEW
94
            'resource_class' => 'Foo',
×
NEW
95
            'operation_name' => 'get',
×
NEW
96
            'receive' => true,
×
NEW
97
            'respond' => false,
×
NEW
98
            'persist' => true,
×
NEW
99
            'has_composite_identifier' => false,
×
NEW
100
        ], RequestAttributesExtractor::extractAttributes($request));
×
101

NEW
102
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_respond' => '1']);
×
103

NEW
104
        $this->assertEquals([
×
NEW
105
            'resource_class' => 'Foo',
×
NEW
106
            'operation_name' => 'get',
×
NEW
107
            'receive' => true,
×
NEW
108
            'respond' => true,
×
NEW
109
            'persist' => true,
×
NEW
110
            'has_composite_identifier' => false,
×
NEW
111
        ], RequestAttributesExtractor::extractAttributes($request));
×
112

NEW
113
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get']);
×
114

NEW
115
        $this->assertEquals([
×
NEW
116
            'resource_class' => 'Foo',
×
NEW
117
            'operation_name' => 'get',
×
NEW
118
            'receive' => true,
×
NEW
119
            'respond' => true,
×
NEW
120
            'persist' => true,
×
NEW
121
            'has_composite_identifier' => false,
×
NEW
122
        ], RequestAttributesExtractor::extractAttributes($request));
×
123
    }
124

125
    public function testExtractPersist(): void
126
    {
NEW
127
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_persist' => '0']);
×
128

NEW
129
        $this->assertEquals([
×
NEW
130
            'resource_class' => 'Foo',
×
NEW
131
            'operation_name' => 'get',
×
NEW
132
            'receive' => true,
×
NEW
133
            'respond' => true,
×
NEW
134
            'persist' => false,
×
NEW
135
            'has_composite_identifier' => false,
×
NEW
136
        ], RequestAttributesExtractor::extractAttributes($request));
×
137

NEW
138
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_persist' => '1']);
×
139

NEW
140
        $this->assertEquals([
×
NEW
141
            'resource_class' => 'Foo',
×
NEW
142
            'operation_name' => 'get',
×
NEW
143
            'receive' => true,
×
NEW
144
            'respond' => true,
×
NEW
145
            'persist' => true,
×
NEW
146
            'has_composite_identifier' => false,
×
NEW
147
        ], RequestAttributesExtractor::extractAttributes($request));
×
148

NEW
149
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get']);
×
150

NEW
151
        $this->assertEquals([
×
NEW
152
            'resource_class' => 'Foo',
×
NEW
153
            'operation_name' => 'get',
×
NEW
154
            'receive' => true,
×
NEW
155
            'respond' => true,
×
NEW
156
            'persist' => true,
×
NEW
157
            'has_composite_identifier' => false,
×
NEW
158
        ], RequestAttributesExtractor::extractAttributes($request));
×
159
    }
160

161
    public function testResourceClassNotSet(): void
162
    {
NEW
163
        $this->assertEmpty(RequestAttributesExtractor::extractAttributes(new Request([], [], ['_api_operation_name' => 'get'])));
×
164
    }
165

166
    public function testOperationNotSet(): void
167
    {
NEW
168
        $this->assertEmpty(RequestAttributesExtractor::extractAttributes(new Request([], [], ['_api_resource_class' => 'Foo'])));
×
169
    }
170

171
    public function testExtractPreviousDataAttributes(): void
172
    {
NEW
173
        $object = new \stdClass();
×
NEW
174
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', 'previous_data' => $object]);
×
175

NEW
176
        $this->assertEquals([
×
NEW
177
            'resource_class' => 'Foo',
×
NEW
178
            'operation_name' => 'get',
×
NEW
179
            'receive' => true,
×
NEW
180
            'respond' => true,
×
NEW
181
            'persist' => true,
×
NEW
182
            'previous_data' => $object,
×
NEW
183
            'has_composite_identifier' => false,
×
NEW
184
        ], RequestAttributesExtractor::extractAttributes($request));
×
185
    }
186

187
    public function testExtractIdentifiers(): void
188
    {
NEW
189
        $request = new Request([], [], ['_api_resource_class' => 'Foo', '_api_operation_name' => 'get', '_api_identifiers' => ['test'], '_api_has_composite_identifier' => true]);
×
190

NEW
191
        $this->assertEquals([
×
NEW
192
            'resource_class' => 'Foo',
×
NEW
193
            'operation_name' => 'get',
×
NEW
194
            'receive' => true,
×
NEW
195
            'respond' => true,
×
NEW
196
            'persist' => true,
×
NEW
197
            'has_composite_identifier' => true,
×
NEW
198
        ], RequestAttributesExtractor::extractAttributes($request));
×
199
    }
200
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc