Passed
Push — master ( b0febc...99b0a5 )
by Jakub
01:55
created

TestCaseTest::testGetSuiteName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MyTester;
6
7
use MyTester\Attributes\DataProvider as DataProviderAttribute;
8
use MyTester\Attributes\Skip;
9
use MyTester\Attributes\Test;
10
use MyTester\Attributes\TestSuite;
11
12
/**
13
 * Test suite for class TestCase
14
 *
15
 * @author Jakub Konečný
16
 */
17
#[TestSuite("TestCase")]
18
final class TestCaseTest extends TestCase
19
{
20
    /** @var bool|int */
21
    private $one = false;
22
23
    public function setUp(): void
24
    {
25
        $this->one = 1;
26
    }
27
28
    public function tearDown(): void
29
    {
30
        $this->one = false;
31
    }
32
33
    public function shutDown(): void
34
    {
35
        $this->assertFalsey($this->one);
36
    }
37
38
    public function testState(): void
39
    {
40
        $this->assertFalse(false);
41
        $this->assertSame(1, $this->getCounter());
42
        $this->incCounter();
43
        $this->assertSame(3, $this->getCounter());
44
        $this->resetCounter();
45
        $this->assertSame(0, $this->getCounter());
46
    }
47
48
    /**
49
     * Test parameters
50
     */
51
    #[DataProviderAttribute("dataProvider")]
52
    public function testParams(string $text): void
53
    {
54
        $this->assertType("string", $text);
55
        $this->assertContains("a", $text);
56
    }
57
58
    public function testParamsNoneProvided(string $text): void
59
    {
60
        $this->assertTrue(false);
61
    }
62
63
    public function dataProvider(): array
64
    {
65
        return ["abc", "adef", ];
66
    }
67
68
    /**
69
     * Test custom test's name
70
     */
71
    #[Test("Custom name")]
72
    public function testTestName(): void
73
    {
74
        $this->assertSame(1, $this->one);
75
    }
76
77
    /**
78
     * Test unconditional skipping
79
     */
80
    #[Test("Skip")]
81
    #[Skip()]
82
    public function testSkip(): void
83
    {
84
        $this->assertTrue(false);
85
    }
86
87
    /**
88
     * Test skipping based on boolean
89
     */
90
    #[Test("Boolean")]
91
    #[Skip(true)]
92
    public function testSkipBoolean(): void
93
    {
94
        $this->assertTrue(false);
95
    }
96
97
    /**
98
     * Test skipping based on integer
99
     */
100
    #[Test("Integer")]
101
    #[Skip(1)]
102
    public function testSkipInteger(): void
103
    {
104
        $this->assertTrue(false);
105
    }
106
107
    /**
108
     * Test skipping based on float
109
     */
110
    #[Test("Integer")]
111
    #[Skip(1.5)]
112
    public function testSkipFloat(): void
113
    {
114
        $this->assertTrue(false);
115
    }
116
117
    /**
118
     * Test skipping based on string
119
     */
120
    #[Test("String")]
121
    #[Skip("abc")]
122
    public function testSkipString(): void
123
    {
124
        $this->assertTrue(false);
125
    }
126
127
    /**
128
     * Test skipping based on PHP version
129
     */
130
    #[Test("PHP version")]
131
    #[Skip(["php" => 666])]
132
    public function testSkipPhpVersion(): void
133
    {
134
        $this->assertTrue(false);
135
    }
136
137
    /**
138
     * Test skipping based on sapi
139
     */
140
    #[Test("CGI sapi")]
141
    #[Skip(["sapi" => "abc"])]
142
    public function testCgiSapi(): void
143
    {
144
        $this->assertNotSame(PHP_SAPI, "abc");
145
    }
146
147
    /**
148
     * Test skipping based on loaded extension
149
     */
150
    #[Test("Extension")]
151
    #[Skip(["extension" => "abc"])]
152
    public function testSkipExtension(): void
153
    {
154
        $this->assertTrue(false);
155
    }
156
157
    #[Test("No assertions")]
158
    public function testNoAssertions(): void
159
    {
160
    }
161
162
    public function testGetSuiteName(): void
163
    {
164
        $this->assertSame("TestCase", $this->getSuiteName());
165
    }
166
167
    public function testGetJobName(): void
168
    {
169
        $this->assertSame("TestCase::" . __FUNCTION__, $this->getJobName(self::class, __FUNCTION__));
170
        $this->assertSame("Extension", $this->getJobName(self::class, "testSkipExtension"));
171
    }
172
}
173