Message::setFrom()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
namespace RM\SMSender\EuroSms;
4
5
use Nette\Utils\Strings;
6
use RM\SMSender;
7
use RM\SMSender\InvalidArgumentException;
8
9
/**
10
 * Message for service EuroSms.sk
11
 */
12 1
class Message extends SMSender\Message implements SMSender\IMessage
13
{
14
15
	public function setFrom(string $from = '') : SMSender\IMessage
16
	{
17 1
		if (!Strings::match($from, '~^[0-9a-zA-Z\. -]{1,14}$~'))
18 1
			throw new InvalidArgumentException('Parameter "from" can contain only alphanumerical character, space, "-" and "." and must have from 1-14 characters.');
19 1
		return parent::setFrom($from);
20
	}
21
22
	public function setTo(string $number = '') : SMSender\IMessage
23
	{
24 1
		if (!Strings::match($number, '~^09\d{8}|\+?\d{12}$~'))
25 1
			throw new InvalidArgumentException('Parameter "number" can use number in formats "09xxYYYYYY" or "+xxxYYYzzzzzz".');
26 1
		return parent::setTo(ltrim($number, '+'));
27
	}
28
29
	public function setText(string $text = '') : SMSender\IMessage
30
	{
31 1
		if (strlen($text) < 1 OR strlen($text) > 459)
32 1
			throw new InvalidArgumentException('Parameter "text" must be length 1-459 characters. Has ' . strlen($text) . ' characters.');
33 1
		return parent::setText(Strings::toAscii($text));
34
	}
35
}
36