RequestParametersTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
eloc 23
dl 0
loc 50
rs 10
c 2
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A itCanBeTraversed() 0 10 1
A itCanBeSerialized() 0 6 1
A itThrowAnExceptionOnUnsupportedParameterLocation() 0 13 1
A itCanResolveARequestParameterByName() 0 9 1
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