Completed
Push — feat/add-quality-gates ( b24265...ab5d16 )
by Guillem
02:59
created

SymfonyDecoderAdapterTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 15
dl 0
loc 31
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A itShouldTransformDecodedXmlIntoAnArrayOfObject() 0 12 1
A itShouldDecodeAJsonStringIntoAnArrayOfObject() 0 13 1
1
<?php
2
namespace ElevenLabs\Api\Decoder\Adapter;
3
4
use PHPUnit\Framework\TestCase;
5
use Symfony\Component\Serializer\Encoder\JsonDecode;
6
use Symfony\Component\Serializer\Encoder\XmlEncoder;
7
8
class SymfonyDecoderAdapterTest extends TestCase
9
{
10
    /** @test */
11
    public function itShouldTransformDecodedXmlIntoAnArrayOfObject()
12
    {
13
        $expected = [
14
            (object) ['@key' => 0, 'foo' => 'foo1'],
15
            (object) ['@key' => 1, 'foo' => 'foo2'],
16
        ];
17
18
        $data = '<response><item key="0"><foo>foo1</foo></item><item key="1"><foo>foo2</foo></item></response>';
19
        $decoder = new SymfonyDecoderAdapter(new XmlEncoder());
20
        $actual = $decoder->decode($data, 'xml');
21
22
        assertThat($actual, equalTo($expected));
23
    }
24
25
    /** @test */
26
    public function itShouldDecodeAJsonStringIntoAnArrayOfObject()
27
    {
28
        $expected = [
29
            (object) ['foo' => 'foo1'],
30
            (object) ['foo' => 'foo2'],
31
        ];
32
33
        $data = '[{"foo": "foo1"}, {"foo": "foo2"}]';
34
35
        $decoder = new SymfonyDecoderAdapter(new JsonDecode(true));
36
        $actual = $decoder->decode($data, 'json');
37
38
        assertThat($actual, equalTo($expected));
39
    }
40
}
41