Passed
Push — master ( e6a12d...210e25 )
by Petr
08:06
created

FileFactoryTest::inputFilesProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 56
Code Lines 51

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 51
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 56
rs 9.069

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
use kalanis\kw_rules\Exceptions\RuleException;
4
use kalanis\kw_rules\Interfaces\IRules;
5
use kalanis\kw_rules\Rules;
6
7
8
class FileFactoryTest extends CommonTestClass
9
{
10
    public function testFileFactory(): void
11
    {
12
        $factory = new Rules\File\Factory();
13
        $data = $factory->getRule(IRules::IMAGE_MAX_DIMENSION); // known to factory
14
        $this->assertInstanceOf(Rules\File\AFileRule::class, $data);
15
        $this->expectException(RuleException::class);
16
        $factory->getRule(IRules::SATISFIES_CALLBACK); // not set in factory
17
    }
18
19
    /**
20
     * @param string $rule
21
     * @param bool $gotResult
22
     * @throws RuleException
23
     * @dataProvider inputFilesProvider
24
     */
25
    public function testFileFactoryAvailability(string $rule, bool $gotResult): void
26
    {
27
        $factory = new Rules\File\Factory();
28
        if (!$gotResult) $this->expectException(RuleException::class);
29
        $data = $factory->getRule($rule);
30
        if ($data) $this->assertInstanceOf(Rules\File\AFileRule::class, $data);
31
    }
32
33
    public function inputFilesProvider(): array
34
    {
35
        return [
36
            [IRules::MATCH_ALL, false],
37
            [IRules::MATCH_ANY, false],
38
            [IRules::MATCH_ENTRY, false],
39
            [IRules::EQUALS, false],
40
            [IRules::NOT_EQUALS, false],
41
            [IRules::IN_ARRAY, false],
42
            [IRules::NOT_IN_ARRAY, false],
43
            [IRules::IS_GREATER_THAN, false],
44
            [IRules::IS_LOWER_THAN, false],
45
            [IRules::IS_GREATER_THAN_EQUALS, false],
46
            [IRules::IS_LOWER_THAN_EQUALS, false],
47
            [IRules::IS_NUMERIC, false],
48
            [IRules::IS_STRING, false],
49
            [IRules::IS_BOOL, false],
50
            [IRules::MATCHES_PATTERN, false],
51
            [IRules::LENGTH_MIN, false],
52
            [IRules::LENGTH_MAX, false],
53
            [IRules::LENGTH_EQUALS, false],
54
            [IRules::IN_RANGE, false],
55
            [IRules::IN_RANGE_EQUALS, false],
56
            [IRules::NOT_IN_RANGE, false],
57
            [IRules::NOT_IN_RANGE_EQUALS, false],
58
            [IRules::IS_FILLED, false],
59
            [IRules::IS_NOT_EMPTY, false],
60
            [IRules::IS_EMPTY, false],
61
            [IRules::SATISFIES_CALLBACK, false],
62
            [IRules::IS_EMAIL, false],
63
            [IRules::IS_DOMAIN, false],
64
            [IRules::URL_EXISTS, false],
65
            [IRules::IS_ACTIVE_DOMAIN, false],
66
            [IRules::IS_JSON_STRING, false],
67
68
            [IRules::FILE_EXISTS, true],
69
            [IRules::FILE_SENT, true],
70
            [IRules::FILE_RECEIVED, true],
71
            [IRules::FILE_MAX_SIZE, true],
72
            [IRules::FILE_MIMETYPE_IN_LIST, true],
73
            [IRules::FILE_MIMETYPE_EQUALS, true],
74
            [IRules::IS_IMAGE, true],
75
            [IRules::IMAGE_DIMENSION_EQUALS, true],
76
            [IRules::IMAGE_DIMENSION_IN_LIST, true],
77
            [IRules::IMAGE_MAX_DIMENSION, true],
78
            [IRules::IMAGE_MIN_DIMENSION, true],
79
80
            [IRules::IS_POST_CODE, false],
81
            [IRules::IS_TELEPHONE, false],
82
            [IRules::IS_EU_VAT, false],
83
            [IRules::IS_DATE, false],
84
            [IRules::IS_DATE_REGEX, false],
85
86
            [IRules::SAFE_EQUALS_BASIC, false],
87
            [IRules::SAFE_EQUALS_FUNC, false],
88
            [IRules::SAFE_EQUALS_PASS, false],
89
        ];
90
    }
91
}
92