Passed
Push — master ( 9503f0...488e4f )
by Petr
02:34
created

Control   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 11
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 2
dl 0
loc 11
rs 10
c 2
b 0
f 0
wmc 2
1
<?php
2
3
namespace BasicTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_forms\Controls;
8
use kalanis\kw_forms\Form\TControl;
9
use kalanis\kw_forms\Form\TMethod;
10
use kalanis\kw_input\Interfaces\IEntry;
11
use kalanis\kw_templates\HtmlElement\TAttributes;
12
13
14
class BasicTest extends CommonTestClass
15
{
16
    /**
17
     * @param string $type
18
     * @param array $params
19
     * @param string $instance
20
     * @dataProvider factoryProvider
21
     */
22
    public function testAddingTrait(string $type, array $params, string $instance): void
23
    {
24
        $factory = new Control();
25
        $control = call_user_func_array([$factory, $type], $params);
26
        $this->assertInstanceOf($instance, $control);
27
    }
28
29
    public function factoryProvider(): array
30
    {
31
        $outside = new \MockArray();
32
        return [
33
            ['addInput', ['any', 'simple'], Controls\Input::class],
34
            ['addInput', ['text', 'combine'], Controls\Input::class],
35
            ['addText', ['name', 'label', 'value'], Controls\Text::class],
36
            ['addEmail', ['from', 'sending'], Controls\Email::class],
37
            ['addPassword', ['pass', 'you know'], Controls\Password::class],
38
            ['addHidden', ['hide', 'me'], Controls\Hidden::class],
39
            ['addDatePicker', ['date', 'yesterday'], Controls\DatePicker::class],
40
            ['addDateTimePicker', ['meetup', 'tomorrow'], Controls\DateTimePicker::class],
41
            ['addDateRange', ['rage'], Controls\DateRange::class],
42
            ['addDescription', ['out', 'not hard'], Controls\Description::class],
43
            ['addHtml', ['in', 'burning'], Controls\Html::class],
44
            ['addTextarea', ['more', 'about other things'], Controls\Textarea::class],
45
            ['addSelect', ['name', 'label', 'value'], Controls\Select::class],
46
            ['addSelectList', ['name', 'label', ['check1' => 'foo', 'check2' => 'bar', 'check3' => 'baz', ], 3], Controls\SelectList::class],
47
            ['addRadios', ['name', 'label', 'value'], Controls\RadioSet::class],
48
            ['addCheckbox', ['name', 'label', 'value'], Controls\Checkbox::class],
49
            ['addCheckboxSwitch', ['name', 'label', 'value'], Controls\CheckboxSwitch::class],
50
            ['addCheckboxes', ['name', 'label', ['check1' => 'foo', 'check2' => 'bar', 'check3' => 'baz', ], ['check1', 'check3', 'check4']], Controls\Checkboxes::class],
51
            ['addFile', ['uploaded', 'file'], Controls\File::class],
52
            ['addFiles', ['passed', 'files'], Controls\Files::class],
53
            ['addButton', ['click', 'here'], Controls\Button::class],
54
            ['addReset', ['reload', 'reload'], Controls\Reset::class],
55
            ['addSubmit', ['submit', 'commit'], Controls\Submit::class],
56
            ['addMultiSend', ['outMulti', &$outside, 'our end'], Controls\Security\MultiSend::class],
57
            ['addCaptchaDisabled', ['captchaDis'], Controls\Security\Captcha\Disabled::class],
58
            ['addCaptchaText', ['captchaTxt', &$outside], Controls\Security\Captcha\Text::class],
59
            ['addCaptchaMath', ['captchaNum', &$outside], Controls\Security\Captcha\Numerical::class],
60
            ['addCaptchaColour', ['captchaCol', &$outside], Controls\Security\Captcha\ColourfulText::class],
61
            ['addNocaptcha', ['captcha'], Controls\Security\Captcha\NoCaptcha::class],
62
        ];
63
    }
64
65
    public function testMethod(): void
66
    {
67
        $method = new Method();
68
        $this->assertEmpty($method->getMethod());
69
        $method->setMethod(IEntry::SOURCE_ENV); // bad one
70
        $this->assertEmpty($method->getMethod());
71
        $method->setMethod(IEntry::SOURCE_GET); // good one
72
        $this->assertNotEmpty($method->getMethod());
73
        $this->assertEquals(IEntry::SOURCE_GET, $method->getMethod());
74
    }
75
}
76
77
78
class Method
79
{
80
    use TMethod;
81
    use TAttributes;
82
}
83
84
85
class Control
86
{
87
    use TControl;
88
89
    public function addControlDefaultKey(Controls\AControl $control): void
90
    {
91
        // nothing need to be implemented
92
    }
93
94
    public function setAttribute(string $name, string $value): void
95
    {
96
        // nothing need to be implemented
97
    }
98
}
99