Passed
Push — master ( 8ff373...315bd9 )
by adam
01:44
created

TrimmingStringNormalizerTest::testNormalize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace ValueParsers\Tests\Normalizers;
6
7
use DataValues\StringValue;
8
use InvalidArgumentException;
9
use PHPUnit\Framework\TestCase;
10
use ValueParsers\Normalizers\TrimmingStringNormalizer;
11
12
/**
13
 * @covers \ValueParsers\Normalizers\TrimmingStringNormalizer
14
 *
15
 * @group ValueParsers
16
 * @group DataValueExtensions
17
 *
18
 * @license GPL-2.0-or-later
19
 * @author Thiemo Kreuz
20
 */
21
class TrimmingStringNormalizerTest extends TestCase {
22
23
	/**
24
	 * @dataProvider stringProvider
25
	 */
26
	public function testNormalize( $value, $expected ) {
27
		$normalizer = new TrimmingStringNormalizer();
28
		$this->assertSame( $expected, $normalizer->normalize( $value ) );
29
	}
30
31
	public function stringProvider() {
32
		return [
33
			'Empty' => [ '', '' ],
34
			'Trimmed' => [ 'a', 'a' ],
35
			'Spaces' => [ ' a ', 'a' ],
36
			'Controls' => [ "\n\r\ta\n\r\t", 'a' ],
37
			'Paragraph separator' => [ "\xE2\x80\xA9a\xE2\x80\xA9", 'a' ],
38
		];
39
	}
40
41
	/**
42
	 * @dataProvider invalidValueProvider
43
	 */
44
	public function testNormalizeException( $value ) {
45
		$normalizer = new TrimmingStringNormalizer();
46
		$this->expectException( InvalidArgumentException::class );
47
		$normalizer->normalize( $value );
48
	}
49
50
	public function invalidValueProvider() {
51
		return [
52
			[ null ],
53
			[ true ],
54
			[ 1 ],
55
			[ new StringValue( '' ) ],
56
		];
57
	}
58
59
}
60