Message   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 3
dl 0
loc 24
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setFrom() 0 6 2
A setTo() 0 6 2
A setText() 0 6 3
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