GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( a9bc98...b864c9 )
by butschster
10:50
created

FormElementTest::test_initializable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
rs 9.4285
1
<?php
2
3
use Mockery as m;
4
use SleepingOwl\Admin\Form\FormElement;
5
6
class FormElementTest extends TestCase
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
7
{
8
    /**
9
     * @return FormElement
10
     */
11
    protected function getElement()
12
    {
13
        return $this->getMockForAbstractClass(FormElement::class);
14
    }
15
16
    /**
17
     * @covers FormElement::initialize
18
     */
19
    public function test_initializable()
20
    {
21
        \KodiCMS\Assets\Facades\Meta::shouldReceive('loadPackage')->once();
22
23
        $this->getElement()->initialize();
24
    }
25
26
    /**
27
     * @covers FormElement::getValidationRules
28
     * @covers FormElement::addValidationRule
29
     */
30
    public function test_adds_validation_rule()
31
    {
32
        $element = $this->getElement();
33
34
        $this->assertEmpty($element->getValidationRules());
35
36
        $rule = 'some_rule';
37
        $element->addValidationRule($rule);
38
        $this->assertEquals([$rule], $element->getValidationRules());
39
    }
40
41
    /**
42
     * @covers FormElement::getValidationRules
43
     * @covers FormElement::addValidationRule
44
     * @covers FormElement::addValidationMessage
45
     * @covers FormElement::getValidationMessages
46
     */
47
    public function test_adds_validation_rule_with_message()
48
    {
49
        $element = $this->getElement();
50
51
        $this->assertEmpty($element->getValidationRules());
52
        $this->assertEmpty($element->getValidationMessages());
53
54
        $element->addValidationRule(
55
            $rule = 'some_rule',
56
            $message = 'my custom message'
57
        );
58
59
        $this->assertEquals([$rule], $element->getValidationRules());
60
        $this->assertEquals([$rule => $message], $element->getValidationMessages());
61
    }
62
63
    /**
64
     * @covers FormElement::getValidationMessages
65
     * @covers FormElement::addValidationMessage
66
     */
67
    public function test_adds_validation_message()
68
    {
69
        $element = $this->getElement();
70
        $this->assertEmpty($element->getValidationMessages());
71
72
        $element->addValidationMessage(
73
            $rule = 'min:10',
74
            $message = 'my custom message'
75
        );
76
77
        $element->addValidationMessage(
78
            $rule1 = 'string',
79
            $message1 = 'my custom message 1'
80
        );
81
82
        $this->assertEquals(['min' => $message, $rule1 => $message1], $element->getValidationMessages());
83
    }
84
85
    /**
86
     * @covers FormElement::getValidationMessages
87
     * @covers FormElement::setValidationMessages
88
     */
89
    public function test_sets_validation_messages()
90
    {
91
        $element = $this->getElement();
92
        $this->assertEmpty($element->getValidationMessages());
93
94
        $element->setValidationMessages([
95
            'min' => 'test',
96
            'max' => 'test',
97
        ]);
98
99
        $this->assertEquals(['min' => 'test', 'max' => 'test'], $element->getValidationMessages());
100
101
        $element->setValidationMessages([
102
            'max' => 'test',
103
        ]);
104
105
        $this->assertEquals(['max' => 'test'], $element->getValidationMessages());
106
    }
107
108
    /**
109
     * @covers FormElement::getValidationRules
110
     * @covers FormElement::setValidationRules
111
     */
112 View Code Duplication
    public function test_sets_validation_rules_as_array()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
113
    {
114
        $element = $this->getElement();
115
116
        $this->assertEmpty($element->getValidationRules());
117
        $element->setValidationRules([
118
            'rule|one',
119
            'rule|two',
120
        ]);
121
122
        $this->assertEquals([
123
            'rule', 'one', 'rule', 'two',
124
        ], $element->getValidationRules());
125
    }
126
127
    /**
128
     * @covers FormElement::getValidationRules
129
     * @covers FormElement::setValidationRules
130
     */
131 View Code Duplication
    public function test_sets_validation_rules_as_arguments()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
132
    {
133
        $element = $this->getElement();
134
135
        $this->assertEmpty($element->getValidationRules());
136
        $element->setValidationRules('rule|one', 'rule|two');
137
        $this->assertEquals([
138
            'rule', 'one', 'rule', 'two',
139
        ], $element->getValidationRules());
140
    }
141
142
    /**
143
     * @covers FormElement::getView
144
     */
145
    public function test_get_default_view()
146
    {
147
        $element = $this->getElement();
148
149
        $className = strtolower((new \ReflectionClass($element))->getShortName());
150
151
        $this->assertEquals('form.element.'.$className, $element->getView());
152
    }
153
154
    /**
155
     * @covers FormElement::setView
156
     */
157
    public function test_set_view()
158
    {
159
        $element = $this->getElement();
160
        $element->setView('my.custom.view');
161
162
        $this->assertEquals('my.custom.view', $element->getView());
163
    }
164
165
    /**
166
     * @covers FormElement::getModel
167
     * @covers FormElement::setModel
168
     */
169
    public function test_get_and_set_model()
170
    {
171
        $element = $this->getElement();
172
        $this->assertEmpty($element->getModel());
173
174
        $model = m::mock(\Illuminate\Database\Eloquent\Model::class);
175
176
        $element->setModel($model);
177
        $this->assertEquals($model, $element->getModel());
178
    }
179
180
    /**
181
     * @covers FormElement::toArray
182
     */
183
    public function test_is_arrayable()
184
    {
185
        $array = $this->getElement()->toArray();
186
        $this->assertTrue(is_array($array));
187
        $this->assertEquals(['value', 'readonly', 'model'], array_keys($array));
188
    }
189
190
    /**
191
     * @covers FormElement::render
192
     */
193
    public function test_render()
194
    {
195
        $template = m::mock(\SleepingOwl\Admin\Contracts\TemplateInterface::class);
196
        $template->shouldReceive('view')->andReturn($view = m::mock(\Illuminate\Contracts\View\View::class));
197
        $view->shouldReceive('render')->once()->andReturn('hello world');
198
199
        $this->app->instance('sleeping_owl.template', $template);
200
201
        $this->assertEquals('hello world', $this->getElement()->render());
202
    }
203
204
    /**
205
     * @covers FormElement::__toString
206
     */
207
    public function test_converts_into_string()
208
    {
209
        $template = m::mock(\SleepingOwl\Admin\Contracts\TemplateInterface::class);
210
        $template->shouldReceive('view->render')->andReturn('hello world');
211
212
        $this->app->instance('sleeping_owl.template', $template);
213
214
        $this->assertEquals('hello world', $this->getElement()->__toString());
215
    }
216
217
    /**
218
     * @covers FormElement::isReadonly
219
     * @covers FormElement::setReadonly
220
     */
221
    public function test_readOnly()
222
    {
223
        $element = $this->getElement();
224
225
        $element->setReadonly(true);
226
        $this->assertTrue($element->isReadonly());
227
228
        $element->setReadonly(false);
229
        $this->assertFalse($element->isReadonly());
230
231
        $model = m::mock(\Illuminate\Database\Eloquent\Model::class);
232
        $model->shouldReceive('isAuthor')->andReturn(true)->once();
233
234
        $element->setModel($model);
235
236
        $element->setReadonly(function ($model) {
237
            return $model->isAuthor();
238
        });
239
240
        $this->assertTrue($element->isReadonly());
241
    }
242
243
    /**
244
     * @covers FormElement::setVisibilityCondition
245
     * @covers FormElement::isVisible
246
     */
247
    public function test_visibility()
248
    {
249
        $element = $this->getElement();
250
        $model = m::mock(\Illuminate\Database\Eloquent\Model::class);
251
        $model->shouldReceive('isAuthor')->andReturn(true)->once();
252
        $element->setModel($model);
253
254
        $element->setVisibilityCondition(function ($model) {
255
            return $model->isAuthor();
256
        });
257
258
        $this->assertTrue($element->isVisible());
259
    }
260
}
261