-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
SignatureTest.php
117 lines (95 loc) · 3.34 KB
/
SignatureTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
declare(strict_types=1);
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace PhpCsFixer\Tests\Cache;
use PhpCsFixer\Cache\Signature;
use PhpCsFixer\Tests\TestCase;
/**
* @author Andreas Möller <am@localheinz.com>
*
* @internal
*
* @covers \PhpCsFixer\Cache\Signature
*/
final class SignatureTest extends TestCase
{
public function testIsFinal(): void
{
$reflection = new \ReflectionClass(\PhpCsFixer\Cache\Signature::class);
static::assertTrue($reflection->isFinal());
}
public function testImplementsSignatureInterface(): void
{
$reflection = new \ReflectionClass(\PhpCsFixer\Cache\Signature::class);
static::assertTrue($reflection->implementsInterface(\PhpCsFixer\Cache\SignatureInterface::class));
}
public function testConstructorSetsValues(): void
{
$php = PHP_VERSION;
$version = '3.0';
$indent = ' ';
$lineEnding = PHP_EOL;
$rules = ['foo' => true, 'bar' => false];
$signature = new Signature($php, $version, $indent, $lineEnding, $rules);
static::assertSame($php, $signature->getPhpVersion());
static::assertSame($version, $signature->getFixerVersion());
static::assertSame($indent, $signature->getIndent());
static::assertSame($lineEnding, $signature->getLineEnding());
static::assertSame($rules, $signature->getRules());
}
/**
* @dataProvider provideEqualsReturnsFalseIfValuesAreNotIdenticalCases
*/
public function testEqualsReturnsFalseIfValuesAreNotIdentical(Signature $signature, Signature $anotherSignature): void
{
static::assertFalse($signature->equals($anotherSignature));
}
public static function provideEqualsReturnsFalseIfValuesAreNotIdenticalCases(): iterable
{
$php = PHP_VERSION;
$version = '2.0';
$indent = ' ';
$lineEnding = "\n";
$rules = ['foo' => true, 'bar' => false];
$base = new Signature($php, $version, $indent, $lineEnding, $rules);
yield 'php' => [
$base,
new Signature('50400', $version, $indent, $lineEnding, $rules),
];
yield 'version' => [
$base,
new Signature($php, '2.12', $indent, $lineEnding, $rules),
];
yield 'indent' => [
$base,
new Signature($php, $version, "\t", $lineEnding, $rules),
];
yield 'lineEnding' => [
$base,
new Signature($php, $version, $indent, "\r\n", $rules),
];
yield 'rules' => [
$base,
new Signature($php, $version, $indent, $lineEnding, ['foo' => false]),
];
}
public function testEqualsReturnsTrueIfValuesAreIdentical(): void
{
$php = PHP_VERSION;
$version = '2.0';
$indent = ' ';
$lineEnding = PHP_EOL;
$rules = ['foo' => true, 'bar' => false];
$signature = new Signature($php, $version, $indent, $lineEnding, $rules);
$anotherSignature = new Signature($php, $version, $indent, $lineEnding, $rules);
static::assertTrue($signature->equals($anotherSignature));
}
}