Passed
Push — master ( eac227...7df5da )
by Reüel
07:48 queued 11s
created

DataHelper::validate_html_special_chars()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 9
nc 3
nop 1
dl 0
loc 16
ccs 10
cts 10
cp 1
crap 3
rs 9.9666
c 0
b 0
f 0
1
<?php
2
/**
3
 * Data helper
4
 *
5
 * @author    Pronamic <[email protected]>
6
 * @copyright 2005-2019 Pronamic
7
 * @license   GPL-3.0-or-later
8
 * @package   Pronamic\WordPress\Pay\Gateways\OmniKassa2
9
 */
10
11
namespace Pronamic\WordPress\Pay\Gateways\OmniKassa2;
12
13
use InvalidArgumentException;
14
15
/**
16
 * Data helper
17
 *
18
 * @link    https://github.com/wp-pay-gateways/ideal-basic/blob/2.0.0/src/DataHelper.php
19
 * @author  Remco Tolsma
20
 * @version 2.1.0
21
 * @since   2.0.2
22
 */
23
class DataHelper {
24
	/**
25
	 * Validate AN..$max.
26
	 *
27
	 * @param string $value Value to validate.
28
	 * @param int    $max   Max length of value.
29
	 *
30
	 * @return bool
31
	 *
32
	 * @throws InvalidArgumentException Throws invalid argument exception when string is longer then max length.
33
	 */
34 4
	public static function validate_an( $value, $max ) {
35 4
		if ( mb_strlen( $value, 'UTF-8' ) > $max ) {
36
			throw new InvalidArgumentException(
37
				sprintf(
38
					'Value "%s" can not be longer then `%d`.',
39
					$value,
40
					$max
41
				)
42
			);
43
		}
44
45 4
		return true;
46
	}
47
48
	/**
49
	 * Validate null or AN..$max.
50
	 *
51
	 * @param string|null $value Value to validate.
52
	 * @param int         $max   Max length of value.
53
	 *
54
	 * @return bool
55
	 *
56
	 * @throws InvalidArgumentException Throws invalid argument exception when value is not null and longer then max length.
57
	 */
58 1
	public static function validate_null_or_an( $value, $max ) {
59 1
		if ( null === $value ) {
60
			return true;
61
		}
62
63 1
		return self::validate_an( $value, $max );
64
	}
65
66
	/**
67
	 * Shorten string to the specified length.
68
	 *
69
	 * @param string $string String.
70
	 * @param int    $length Length.
71
	 *
72
	 * @return string
73
	 */
74 5
	public static function shorten( $string, $length ) {
75 5
		return mb_strimwidth( $string, 0, $length, '…' );
76
	}
77
}
78