Completed
Pull Request — master (#15)
by Christian
03:25
created

its_extensions_cannot_be_manipulated()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace spec\Xabbuh\XApi\Model;
4
5
use PhpSpec\ObjectBehavior;
6
7
class ExtensionsSpec extends ObjectBehavior
8
{
9
    function let()
10
    {
11
        $this->beConstructedWith(array('http://id.tincanapi.com/extension/topic' => 'Conformance Testing'));
12
    }
13
14
    function its_extensions_can_be_read()
15
    {
16
        $this->beConstructedWith(array(
17
            'http://id.tincanapi.com/extension/topic' => 'Conformance Testing',
18
            'http://id.tincanapi.com/extension/color' => array(
19
                'model' => 'RGB',
20
                'value' => '#FFFFFF',
21
            ),
22
            'http://id.tincanapi.com/extension/starting-position' => 1,
23
        ));
24
25
        $this->offsetExists('http://id.tincanapi.com/extension/topic')->shouldReturn(true);
26
        $this->offsetGet('http://id.tincanapi.com/extension/topic')->shouldReturn('Conformance Testing');
27
28
        $this->offsetExists('http://id.tincanapi.com/extension/color')->shouldReturn(true);
29
        $this->offsetGet('http://id.tincanapi.com/extension/color')->shouldReturn(array(
30
            'model' => 'RGB',
31
            'value' => '#FFFFFF',
32
        ));
33
34
        $this->offsetExists('http://id.tincanapi.com/extension/starting-position')->shouldReturn(true);
35
        $this->offsetGet('http://id.tincanapi.com/extension/starting-position')->shouldReturn(1);
36
    }
37
38
    function it_throws_exception_when_not_existing_extension_is_being_read()
39
    {
40
        $this->shouldThrow('\InvalidArgumentException')->duringOffsetGet('z');
41
    }
42
43
    function its_extensions_cannot_be_manipulated()
44
    {
45
        $this->shouldThrow('\Xabbuh\XApi\Common\Exception\UnsupportedOperationException')->duringOffsetSet('z', 'baz');
46
        $this->shouldThrow('\Xabbuh\XApi\Common\Exception\UnsupportedOperationException')->duringOffsetUnset('x');
47
    }
48
}
49