Completed
Push — master ( ef8414...a67d49 )
by Richard
10s
created

it_chains_assertions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Assert
4
 *
5
 * LICENSE
6
 *
7
 * This source file is subject to the MIT license that is bundled
8
 * with this package in the file LICENSE.txt.
9
 * If you did not receive a copy of the license and are unable to
10
 * obtain it through the world-wide-web, please send an email
11
 * to [email protected] so I can send you a copy immediately.
12
 */
13
14
namespace Assert\Tests;
15
16
/**
17
 * Test case specific for the deprecated functions creating assertion chains
18
 */
19
class AssertionChainFunctionsTest extends \PHPUnit_Framework_TestCase
20
{
21
    /**
22
     * @test
23
     */
24
    public function it_chains_assertions()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_chains_assertions" is not in camel caps format
Loading history...
25
    {
26
        \Assert\that(10)->notEmpty()->integer();
27
    }
28
29
    /**
30
     * @test
31
     */
32
    public function it_shifts_arguments_to_assertions_by_one()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_shifts_arguments_to_assertions_by_one" is not in camel caps format
Loading history...
33
    {
34
        \Assert\that(10)->eq(10);
35
    }
36
37
    /**
38
     * @test
39
     */
40
    public function it_knowns_default_error_message()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_knowns_default_error_message" is not in camel caps format
Loading history...
41
    {
42
        $this->setExpectedException('Assert\InvalidArgumentException', 'Not Null and such');
43
44
        \Assert\that(null, 'Not Null and such')->notEmpty();
45
    }
46
47
    /**
48
     * @test
49
     */
50
    public function it_skips_assertions_on_valid_null()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_skips_assertions_on_valid_null" is not in camel caps format
Loading history...
51
    {
52
        \Assert\that(null)->nullOr()->integer()->eq(10);
53
    }
54
55
    /**
56
     * @test
57
     */
58
    public function it_validates_all_inputs()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_validates_all_inputs" is not in camel caps format
Loading history...
59
    {
60
        \Assert\that(array(1, 2, 3))->all()->integer();
61
    }
62
63
    /**
64
     * @test
65
     */
66
    public function it_has_thatall_shortcut()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_has_thatall_shortcut" is not in camel caps format
Loading history...
67
    {
68
        \Assert\thatAll(array(1, 2, 3))->integer();
69
    }
70
71
    /**
72
     * @test
73
     */
74
    public function it_has_nullor_shortcut()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_has_nullor_shortcut" is not in camel caps format
Loading history...
75
    {
76
        \Assert\thatNullOr(null)->integer()->eq(10);
77
    }
78
79
    /**
80
     * @expectedException \RuntimeException
81
     * @expectedExceptionMessage Assertion 'unknownAssertion' does not exist.
82
     * @test
83
     */
84
    public function it_throws_exception_for_unknown_assertion()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_throws_exception_for_unknown_assertion" is not in camel caps format
Loading history...
85
    {
86
        \Assert\that(null)->unknownAssertion();
0 ignored issues
show
Documentation Bug introduced by
The method unknownAssertion does not exist on object<Assert\AssertionChain>? Since you implemented __call, maybe consider adding a @method annotation.

If you implement __call and you know which methods are available, you can improve IDE auto-completion and static analysis by adding a @method annotation to the class.

This is often the case, when __call is implemented by a parent class and only the child class knows which methods exist:

class ParentClass {
    private $data = array();

    public function __call($method, array $args) {
        if (0 === strpos($method, 'get')) {
            return $this->data[strtolower(substr($method, 3))];
        }

        throw new \LogicException(sprintf('Unsupported method: %s', $method));
    }
}

/**
 * If this class knows which fields exist, you can specify the methods here:
 *
 * @method string getName()
 */
class SomeClass extends ParentClass { }
Loading history...
87
    }
88
89
    /**
90
     * @test
91
     */
92
    public function it_has_satisfy_shortcut()
0 ignored issues
show
Coding Style introduced by
Method name "AssertionChainFunctionsTest::it_has_satisfy_shortcut" is not in camel caps format
Loading history...
93
    {
94
        \Assert\that(null)->satisfy(function ($value) {
95
            return is_null($value);
96
        });
97
    }
98
}
99