RequestParametersTest::itCanBeSerialized()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 0
1
<?php
2
namespace ElevenLabs\Api\Definition;
3
4
use PHPUnit\Framework\TestCase;
5
6
class RequestParametersTest extends TestCase
7
{
8
    /** @test */
9
    public function itCanBeTraversed()
10
    {
11
        $requestParameter = $this->prophesize(Parameter::class);
12
        $requestParameter->getLocation()->willReturn('query');
13
        $requestParameter->getName()->willReturn('foo');
14
15
        $requestParameters = new Parameters([$requestParameter->reveal()]);
16
17
        assertThat($requestParameters, isInstanceOf(\Traversable::class));
18
        assertThat($requestParameters, containsOnlyInstancesOf(Parameter::class));
19
    }
20
21
    /** @test */
22
    public function itCanBeSerialized()
23
    {
24
        $requestParameters = new Parameters([]);
25
        $serialized = serialize($requestParameters);
26
27
        assertThat(unserialize($serialized), self::equalTo($requestParameters));
28
    }
29
30
    /** @test */
31
    public function itThrowAnExceptionOnUnsupportedParameterLocation()
32
    {
33
        $this->expectException(\InvalidArgumentException::class);
34
        $this->expectExceptionMessage(
35
            'nowhere is not a supported parameter location, ' .
36
            'supported: path, header, query, body, formData'
37
        );
38
39
        $param = $this->prophesize(Parameter::class);
40
        $param->getName()->willreturn('foo');
41
        $param->getLocation()->willreturn('nowhere');
42
43
        new Parameters([$param->reveal()]);
44
    }
45
46
    /** @test */
47
    public function itCanResolveARequestParameterByName()
48
    {
49
        $requestParameter = $this->prophesize(Parameter::class);
50
        $requestParameter->getLocation()->willReturn('query');
51
        $requestParameter->getName()->willReturn('foo');
52
53
        $requestParameters = new Parameters([$requestParameter->reveal()]);
54
55
        assertThat($requestParameters->getByName('foo'), equalTo($requestParameter->reveal()));
56
    }
57
}
58