Completed
Push — master ( 40839a...0c8940 )
by Guillem
02:24
created

RequestParametersTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 21
dl 0
loc 47
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A itCanBeTraversed() 0 10 1
A itCanBeSerialized() 0 6 1
A itThrowAnExceptionOnUnsupportedParameterLocation() 0 10 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('nowhere is not a valid parameter location');
35
36
        $param = $this->prophesize(Parameter::class);
37
        $param->getName()->willreturn('foo');
38
        $param->getLocation()->willreturn('nowhere');
39
40
        new Parameters([$param->reveal()]);
41
    }
42
43
    /** @test */
44
    public function itCanResolveARequestParameterByName()
45
    {
46
        $requestParameter = $this->prophesize(Parameter::class);
47
        $requestParameter->getLocation()->willReturn('query');
48
        $requestParameter->getName()->willReturn('foo');
49
50
        $requestParameters = new Parameters([$requestParameter->reveal()]);
51
52
        assertThat($requestParameters->getByName('foo'), equalTo($requestParameter->reveal()));
53
    }
54
}
55