ObjectRadioTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 58
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 5 1
A testGetValueOptionsDoesntCauseInfiniteLoopIfProxyReturnsEmptyArrayAndValidatorIsInitialized() 0 18 1
A testGetValueOptionsDoesntInvokeProxyIfOptionsNotEmpty() 0 14 1
A testOptionsCanBeSetSingle() 0 9 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DoctrineModuleTest\Form\Element;
6
7
use DoctrineModule\Form\Element\ObjectRadio;
8
use function get_class;
9
10
/**
11
 * Tests for the ObjectRadio element
12
 *
13
 * @covers \DoctrineModule\Form\Element\ObjectRadio
14
 */
15
class ObjectRadioTest extends ProxyAwareElementTestCase
16
{
17
    /** @var ObjectRadio */
18
    protected $element;
19
20
    /**
21
     * {@inheritDoc}.
22
     */
23
    protected function setUp() : void
24
    {
25
        parent::setUp();
26
        $this->element = new ObjectRadio();
27
    }
28
29
    public function testGetValueOptionsDoesntCauseInfiniteLoopIfProxyReturnsEmptyArrayAndValidatorIsInitialized() : void
30
    {
31
        $element = $this->createPartialMock(get_class($this->element), ['setValueOptions']);
32
33
        $options = [];
34
35
        $proxy = $this->createMock('DoctrineModule\Form\Element\Proxy');
36
        $proxy->expects($this->exactly(2))
37
            ->method('getValueOptions')
38
            ->will($this->returnValue($options));
39
40
        $element->expects($this->never())
41
            ->method('setValueOptions');
42
43
        $this->setProxyViaReflection($proxy, $element);
44
        $element->getInputSpecification();
0 ignored issues
show
Bug introduced by
The method getInputSpecification() does not seem to exist on object<PHPUnit\Framework\MockObject\MockObject>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
45
        $this->assertEquals($options, $element->getValueOptions());
0 ignored issues
show
Bug introduced by
The method getValueOptions() does not seem to exist on object<PHPUnit\Framework\MockObject\MockObject>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
46
    }
47
48
    public function testGetValueOptionsDoesntInvokeProxyIfOptionsNotEmpty() : void
49
    {
50
        $options = ['foo' => 'bar'];
51
52
        $proxy = $this->createMock('DoctrineModule\Form\Element\Proxy');
53
        $proxy->expects($this->once())
54
            ->method('getValueOptions')
55
            ->will($this->returnValue($options));
56
57
        $this->setProxyViaReflection($proxy);
58
59
        $this->assertEquals($options, $this->element->getValueOptions());
60
        $this->assertEquals($options, $this->element->getValueOptions());
61
    }
62
63
    public function testOptionsCanBeSetSingle() : void
64
    {
65
        $proxy = $this->createMock('DoctrineModule\Form\Element\Proxy');
66
        $proxy->expects($this->once())->method('setOptions')->with(['is_method' => true]);
67
68
        $this->setProxyViaReflection($proxy);
69
70
        $this->element->setOption('is_method', true);
71
    }
72
}
73