MultiSelectTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 27
c 2
b 0
f 1
dl 0
loc 50
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testRenderEmptyElement() 0 6 1
A generateTestRenderer() 0 11 1
A testRenderElement() 0 23 1
1
<?php
2
3
namespace Nip\Form\Tests\Renderer\Elements;
4
5
use Nip\Form\Tests\AbstractTest;
6
use Nip_Form_Renderer_Elements_MultiSelect as Renderer;
7
8
/**
9
 * Class MultiSelectTest
10
 * @package Nip\Form\Tests\Renderer\Elements
11
 */
12
class MultiSelectTest extends AbstractTest
13
{
14
    public function testRenderEmptyElement()
15
    {
16
        $renderer = $this->generateTestRenderer();
17
        $html = $renderer->render();
18
19
        self::assertSame('<select  name="multi[]" class="form-select " title="Multi element" multiple ></select>', $html);
20
    }
21
22
    public function testRenderElement()
23
    {
24
        $renderer = $this->generateTestRenderer();
25
        $form = $renderer->getElement()->getForm();
0 ignored issues
show
Unused Code introduced by
The assignment to $form is dead and can be removed.
Loading history...
26
27
        $renderer->getElement()->addOption('val1', 'Opt 1');
0 ignored issues
show
Bug introduced by
The method addOption() does not exist on Nip\Form\Elements\AbstractElement. It seems like you code against a sub-type of Nip\Form\Elements\AbstractElement such as Nip_Form_Element_Select or Nip_Form_Element_Input_Group. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

27
        $renderer->getElement()->/** @scrutinizer ignore-call */ addOption('val1', 'Opt 1');
Loading history...
28
        $renderer->getElement()->addOption('val2', 'Opt 2');
29
        $renderer->getElement()->addOption('val3', 'Opt 3');
30
31
        self::assertSame(
32
            '<select  name="multi[]" class="form-select " title="Multi element" multiple >'
33
            . '<option value="val1">Opt 1</option><option value="val2">Opt 2</option><option value="val3">Opt 3</option>'
34
            . '</select>',
35
            $renderer->render()
36
        );
37
38
        $renderer->getElement()->setValue(['val2']);
39
40
        self::assertSame(
41
            '<select  name="multi[]" class="form-select form-select " title="Multi element" multiple >'
42
            . '<option value="val1">Opt 1</option><option value="val2" selected="selected">Opt 2</option><option value="val3">Opt 3</option>'
43
            . '</select>',
44
            $renderer->render()
45
        );
46
    }
47
48
    /**
49
     * @return Renderer
50
     */
51
    protected function generateTestRenderer()
52
    {
53
        $form = new \Nip\Form\Form();
54
        $input = new \Nip_Form_Element_MultiSelect($form);
55
        $input->setName('multi');
56
        $input->setLabel('Multi element');
57
58
        $render = new Renderer();
59
        $render->setElement($input);
60
61
        return $render;
62
    }
63
}
64