From 05132f82eed6549b5dc2de31f76e612b33cbcc84 Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Sat, 16 Jul 2022 23:49:47 +0200 Subject: [PATCH] set covers annotation for each test, complete tests --- ...HandlerTest.php => ALoggerHandlerTest.php} | 27 +++++- Tests/ClientTest.php | 4 + Tests/RecipientsList/RecipientsListTest.php | 19 +++- Tests/Request/AbstractRequest.php | 88 +++++++++++++++++++ Tests/Response/AbstractResponse.php | 10 +++ Tests/SMS/RequestFactoryTest.php | 3 + Tests/Url/UrlTest.php | 3 + Tests/ValueObject/RecipientTest.php | 64 ++++++++++++++ Tests/ValueObject/SenderTest.php | 86 +++++++++++++++--- Tests/ValueObject/SmsBinaryMessageTest.php | 10 +++ Tests/ValueObject/SmsTextMessageTest.php | 2 + Tests/ValueObject/ValueObjectTest.php | 88 +++++++++++++++++++ phpunit.xml | 2 +- src/ValueObject/SmsBinaryMessage.php | 2 +- 14 files changed, 393 insertions(+), 15 deletions(-) rename Tests/{LoggerHandlerTest.php => ALoggerHandlerTest.php} (68%) create mode 100644 Tests/ValueObject/ValueObjectTest.php diff --git a/Tests/LoggerHandlerTest.php b/Tests/ALoggerHandlerTest.php similarity index 68% rename from Tests/LoggerHandlerTest.php rename to Tests/ALoggerHandlerTest.php index 9b56315..4c1b0ed 100644 --- a/Tests/LoggerHandlerTest.php +++ b/Tests/ALoggerHandlerTest.php @@ -21,8 +21,10 @@ use Psr\Log\AbstractLogger; use Psr\Log\LoggerInterface; use ReflectionException; -class LoggerHandlerTest extends ApiTestCase +class ALoggerHandlerTest extends ApiTestCase { + /** tests must run as first, because of singleton, which must not initialized before */ + /** @var LoggerHandler */ public $loggerHandler; @@ -46,9 +48,30 @@ class LoggerHandlerTest extends ApiTestCase unset($this->loggerHandler); } + /** + * @test + * @return void + * @covers \D3\LinkmobilityClient\LoggerHandler::getInstance + */ + public function testGetInstance() + { + // not existing instance + $this->assertInstanceOf( + LoggerHandler::class, + LoggerHandler::getInstance() + ); + + // existing instance + $this->assertInstanceOf( + LoggerHandler::class, + LoggerHandler::getInstance() + ); + } + /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\LoggerHandler::__construct */ public function testConstruct() { @@ -62,6 +85,8 @@ class LoggerHandlerTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\LoggerHandler::setLogger + * @covers \D3\LinkmobilityClient\LoggerHandler::getLogger */ public function testLogger() { diff --git a/Tests/ClientTest.php b/Tests/ClientTest.php index 6e98998..8467f4e 100644 --- a/Tests/ClientTest.php +++ b/Tests/ClientTest.php @@ -68,6 +68,7 @@ class ClientTest extends ApiTestCase * @param $apiClient * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\Client::__construct */ public function testConstruct($apiKey, $apiUrl, $apiClient) { @@ -104,6 +105,7 @@ class ClientTest extends ApiTestCase * @return void * @throws ReflectionException * @dataProvider requestPassedDataProvider + * @covers \D3\LinkmobilityClient\Client::request * */ public function testRequest($requestIsValid) @@ -175,6 +177,7 @@ class ClientTest extends ApiTestCase * @return void * @throws ReflectionException * @dataProvider rawRequestDataProvider + * @covers \D3\LinkmobilityClient\Client::rawRequest */ public function testRawRequest($okStatus) { @@ -260,6 +263,7 @@ class ClientTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\Client::getLoggerHandler */ public function testGetLoggerHandler() { diff --git a/Tests/RecipientsList/RecipientsListTest.php b/Tests/RecipientsList/RecipientsListTest.php index 8bff84b..e47a003 100644 --- a/Tests/RecipientsList/RecipientsListTest.php +++ b/Tests/RecipientsList/RecipientsListTest.php @@ -71,6 +71,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @return void + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::__construct */ public function testConstruct() { @@ -90,6 +91,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::getPhoneNumberUtil */ public function testGetPhoneNumberUtil() { @@ -105,6 +107,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::add */ public function testAddValidNumber() { @@ -158,6 +161,7 @@ class RecipientsListTest extends ApiTestCase * @test * @throws ReflectionException * @dataProvider addInvalidNumberDataProvider + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::add */ public function testAddInvalidNumber($unparsable, $invalidNumber, $invalidNumberType) { @@ -246,6 +250,8 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::clearRecipents + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::getRecipientsList */ public function testClearRecipents() { @@ -273,6 +279,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::getRecipients */ public function testGetRecipients() { @@ -301,6 +308,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::getRecipientsList */ public function testGetRecipientsList() { @@ -332,6 +340,10 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::current + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::next + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::key + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::rewind */ public function testCurrentNextKeyRewind() { @@ -380,6 +392,7 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::valid */ public function testValid() { @@ -411,13 +424,15 @@ class RecipientsListTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::setClient + * @covers \D3\LinkmobilityClient\RecipientsList\RecipientsList::getClient */ public function testSetGetClient() { /** @var Client|MockObject $clientMock */ $clientMock = $this->getMockBuilder(Client::class) - ->disableOriginalConstructor() - ->getMock(); + ->disableOriginalConstructor() + ->getMock(); $this->assertInstanceOf( RecipientsList::class, diff --git a/Tests/Request/AbstractRequest.php b/Tests/Request/AbstractRequest.php index 47055f9..32d0bf7 100644 --- a/Tests/Request/AbstractRequest.php +++ b/Tests/Request/AbstractRequest.php @@ -65,6 +65,8 @@ abstract class AbstractRequest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::__construct + * @covers \D3\LinkmobilityClient\SMS\TextRequest::__construct */ public function testConstruct() { @@ -98,6 +100,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getUri + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getUri */ public function testGetUri() { @@ -112,6 +116,9 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::validate + * @covers \D3\LinkmobilityClient\SMS\TextRequest::validate + * @covers \D3\LinkmobilityClient\Request\Request::validate */ public function validatePassedTest() { @@ -143,6 +150,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::validate + * @covers \D3\LinkmobilityClient\SMS\TextRequest::validate */ public function validateFailedTest() { @@ -176,6 +185,9 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getRawBody + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getRawBody + * @covers \D3\LinkmobilityClient\Request\Request::getRawBody */ public function testGetRawBody() { @@ -200,6 +212,8 @@ abstract class AbstractRequest extends ApiTestCase * @test * @throws ReflectionException * @dataProvider getBodyDataProvider + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getBody + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getBody */ public function testGetBody($contentType, $expected) { @@ -256,6 +270,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getOptions + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getOptions */ public function testGetOptions() { @@ -315,6 +331,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setMessage + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setMessage + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getMessage + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getMessage */ public function setGetMessageTest() { @@ -328,6 +348,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setMethod + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setMethod + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getMethod + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getMethod */ public function setGetMethodTest() { @@ -337,6 +361,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getMethods + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getMethods */ public function getMethodsTest() { @@ -352,6 +378,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setContentType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setContentType + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getContentType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getContentType */ public function setGetContentTypeTest() { @@ -361,6 +391,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setClientMessageId + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setClientMessageId + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getClientMessageId + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getClientMessageId */ public function setGetClientMessageIdTest() { @@ -370,6 +404,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setContentCategory + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setContentCategory + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getContentCategory + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getContentCategory */ public function setGetContentCategoryTest() { @@ -379,6 +417,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getContentCategories + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getContentCategories */ public function getContentCategoriesTest() { @@ -394,6 +434,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setTestMode + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setTestMode + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getTestMode + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getTestMode */ public function setGetTestModeTest() { @@ -403,6 +447,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setMaxSmsPerMessage + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setMaxSmsPerMessage + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getMaxSmsPerMessage + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getMaxSmsPerMessage */ public function setGetMaxSmsPerMessageTest() { @@ -412,6 +460,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setMessageType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setMessageType + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getMessageType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getMessageType */ public function setGetMessageTypeTest() { @@ -421,6 +473,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setNotificationCallbackUrl + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setNotificationCallbackUrl + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getNotificationCallbackUrl + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getNotificationCallbackUrl */ public function setGetNotificationCallbackUrlTest() { @@ -430,6 +486,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setPriority + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setPriority + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getPriority + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getPriority */ public function setGetPriorityTest() { @@ -439,6 +499,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getRecipientsList + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getRecipientsList */ public function getRecipientsListTest() { @@ -454,6 +516,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::sendAsFlashSms + * @covers \D3\LinkmobilityClient\SMS\TextRequest::sendAsFlashSms + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::doSendAsFlashSms + * @covers \D3\LinkmobilityClient\SMS\TextRequest::doSendAsFlashSms */ public function setGetFlashSmsTest() { @@ -463,6 +529,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setSenderAddress + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setSenderAddress + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getSenderAddress + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getSenderAddress */ public function setGetSenderAddressTest() { @@ -477,6 +547,10 @@ abstract class AbstractRequest extends ApiTestCase * @test * @throws ReflectionException * @dataProvider setGetSenderAddressTypeDataProvider + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setSenderAddressType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setSenderAddressType + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getSenderAddressType + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getSenderAddressType */ public function testSetGetSenderAddressType($hasSender, $addressType, $expected) { @@ -530,6 +604,8 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getSenderAddressTypes + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getSenderAddressTypes */ public function getSenderAddressTypesTest() { @@ -545,6 +621,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setValidityPeriode + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setValidityPeriode + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getValidityPeriode + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getValidityPeriode */ public function setGetValidityPeriodeTest() { @@ -555,6 +635,8 @@ abstract class AbstractRequest extends ApiTestCase * @test * @throws ReflectionException * @dataProvider getResponseInstanceDataProvider + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getResponseInstance + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getResponseInstance */ public function testGetResponseInstance(ResponseInterface $response) { @@ -610,6 +692,10 @@ abstract class AbstractRequest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::setClient + * @covers \D3\LinkmobilityClient\SMS\TextRequest::setClient + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getClient + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getClient */ public function setGetClientTest() { @@ -625,6 +711,8 @@ abstract class AbstractRequest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\BinaryRequest::getResponseClass + * @covers \D3\LinkmobilityClient\SMS\TextRequest::getResponseClass */ public function testGetResponseClass() { diff --git a/Tests/Response/AbstractResponse.php b/Tests/Response/AbstractResponse.php index 0f8d21b..e5e7c35 100644 --- a/Tests/Response/AbstractResponse.php +++ b/Tests/Response/AbstractResponse.php @@ -29,6 +29,9 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::__construct + * @covers \D3\LinkmobilityClient\SMS\Response::getRawResponse + * @covers \D3\LinkmobilityClient\SMS\Response::getContent */ public function testConstruct() { @@ -102,6 +105,7 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::getInternalStatus */ public function testGetInternalStatus() { @@ -111,6 +115,7 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::getStatusMessage */ public function testGetStatusMessage() { @@ -120,6 +125,7 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::getClientMessageId */ public function testGetClientMessageId() { @@ -129,6 +135,7 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::getTransferId */ public function testGetTransferId() { @@ -138,6 +145,7 @@ abstract class AbstractResponse extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\Response::getSmsCount */ public function testGetSmsCount() { @@ -151,6 +159,7 @@ abstract class AbstractResponse extends ApiTestCase * * @throws ReflectionException * @dataProvider isSuccessfulDataProvider + * @covers \D3\LinkmobilityClient\SMS\Response::isSuccessful */ public function testIsSuccessful($statusCode, $expected) { @@ -189,6 +198,7 @@ abstract class AbstractResponse extends ApiTestCase * * @throws ReflectionException * @dataProvider getErrorMessageDataProvider + * @covers \D3\LinkmobilityClient\SMS\Response::getErrorMessage */ public function testGetErrorMessage($successful, $expected) { diff --git a/Tests/SMS/RequestFactoryTest.php b/Tests/SMS/RequestFactoryTest.php index 0504a53..ddd6654 100644 --- a/Tests/SMS/RequestFactoryTest.php +++ b/Tests/SMS/RequestFactoryTest.php @@ -30,6 +30,7 @@ class RequestFactoryTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\RequestFactory::__construct */ public function testConstruct() { @@ -59,6 +60,7 @@ class RequestFactoryTest extends ApiTestCase * @return void * @throws ReflectionException * @dataProvider getTextSmsRequestDataProvider + * @covers \D3\LinkmobilityClient\SMS\RequestFactory::getSmsRequest */ public function testGetTextSmsRequest($encoding, $expectedClass) { @@ -107,6 +109,7 @@ class RequestFactoryTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\SMS\RequestFactory::getSmsLength */ public function testGetSmsLengthInstance() { diff --git a/Tests/Url/UrlTest.php b/Tests/Url/UrlTest.php index 2c30250..233f09d 100644 --- a/Tests/Url/UrlTest.php +++ b/Tests/Url/UrlTest.php @@ -45,6 +45,7 @@ class UrlTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\Url\Url::getBaseUri */ public function testGetBaseUri() { @@ -63,6 +64,7 @@ class UrlTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\Url\Url::getTextSmsUri */ public function testGetTextSmsUri() { @@ -78,6 +80,7 @@ class UrlTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\Url\Url::getBinarySmsUri */ public function testGetBinarySmsUri() { diff --git a/Tests/ValueObject/RecipientTest.php b/Tests/ValueObject/RecipientTest.php index 9edfab5..51ea496 100644 --- a/Tests/ValueObject/RecipientTest.php +++ b/Tests/ValueObject/RecipientTest.php @@ -64,6 +64,7 @@ class RecipientTest extends ApiTestCase * @return void * @throws NumberParseException * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::__construct */ public function testConstructValid() { @@ -111,6 +112,7 @@ class RecipientTest extends ApiTestCase * @return void * @throws NumberParseException * @dataProvider constructInvalidDataProvider + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::__construct */ public function testConstructInvalid($number, $country, $validNumber, $expectedException) { @@ -158,6 +160,7 @@ class RecipientTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::getPhoneNumberUtil */ public function testGetPhoneNumberUtil() { @@ -169,4 +172,65 @@ class RecipientTest extends ApiTestCase ) ); } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::getCountryCode + */ + public function testGetCountryCode() + { + $this->assertSame( + $this->phoneCountryFixture, + $this->callMethod( + $this->recipient, + 'getCountryCode' + ) + ); + } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::get + * @covers \D3\LinkmobilityClient\ValueObject\StringValueObject::get + * @covers \D3\LinkmobilityClient\ValueObject\StringValueObject::__toString + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::get + */ + public function testGet() + { + $this->assertSame( + '+4915123456789', + (string) $this->recipient + ); + + $this->assertSame( + '+4915123456789', + $this->callMethod( + $this->recipient, + 'get' + ) + ); + } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::getFormatted + * @covers \D3\LinkmobilityClient\ValueObject\StringValueObject::getFormatted + * @covers \D3\LinkmobilityClient\ValueObject\Recipient::getFormatted + */ + public function testGetFormatted() + { + $this->assertSame( + '4915123456789', + $this->callMethod( + $this->recipient, + 'getFormatted' + ) + ); + } } diff --git a/Tests/ValueObject/SenderTest.php b/Tests/ValueObject/SenderTest.php index 6a81f1e..300b16b 100644 --- a/Tests/ValueObject/SenderTest.php +++ b/Tests/ValueObject/SenderTest.php @@ -16,6 +16,7 @@ declare(strict_types=1); namespace D3\LinkmobilityClient\Tests\ValueObject; use Assert\InvalidArgumentException; +use D3\LinkmobilityClient\Exceptions\NoSenderDefinedException; use D3\LinkmobilityClient\Exceptions\RecipientException; use D3\LinkmobilityClient\Tests\ApiTestCase; use D3\LinkmobilityClient\ValueObject\Sender; @@ -48,8 +49,8 @@ class SenderTest extends ApiTestCase $example = $phoneUtil->getExampleNumberForType($this->phoneCountryFixture, PhoneNumberType::MOBILE); $this->phoneNumberFixture = $phoneUtil->format($example, PhoneNumberFormat::NATIONAL); + /** @var Sender|MockObject sender */ $this->sender = new Sender($this->phoneNumberFixture, $this->phoneCountryFixture); - } /** @@ -68,8 +69,10 @@ class SenderTest extends ApiTestCase * @throws NumberParseException * @throws RecipientException * @throws ReflectionException + * @dataProvider constructValidDataProvider + * @covers \D3\LinkmobilityClient\ValueObject\Sender::__construct */ - public function testConstructValid() + public function testConstructValid($number, $country, $hasNumber) { /** @var PhoneNumberUtil|MockObject $phoneNumberUtilMock */ $phoneNumberUtilMock = $this->getMockBuilder(PhoneNumberUtil::class) @@ -86,17 +89,33 @@ class SenderTest extends ApiTestCase ->disableOriginalConstructor() ->getMock(); $senderMock->method('getPhoneNumberUtil')->willReturn($phoneNumberUtilMock); - $senderMock->__construct($this->phoneNumberFixture, $this->phoneCountryFixture); + $senderMock->__construct($number, $country); $this->assertSame( - '4915792300219', + $hasNumber, $this->callMethod( $senderMock, 'get' - ) + ) === '4915792300219' ); } + /** + * @return array[] + */ + public function constructValidDataProvider(): array + { + $phoneUtil = PhoneNumberUtil::getInstance(); + $example = $phoneUtil->getExampleNumberForType($this->phoneCountryFixture, PhoneNumberType::MOBILE); + $this->phoneNumberFixture = $phoneUtil->format($example, PhoneNumberFormat::NATIONAL); + + return [ + 'null number' => [null, $this->phoneCountryFixture, false], + 'null country' => [$this->phoneNumberFixture, null, false], + 'all values' => [$this->phoneNumberFixture, $this->phoneCountryFixture, true] + ]; + } + /** * @test * @param $number @@ -107,6 +126,7 @@ class SenderTest extends ApiTestCase * @throws NumberParseException * @throws RecipientException * @dataProvider constructInvalidDataProvider + * @covers \D3\LinkmobilityClient\ValueObject\Sender::__construct */ public function testConstructInvalid($number, $country, $validNumber, $expectedException) { @@ -116,12 +136,14 @@ class SenderTest extends ApiTestCase ->disableOriginalConstructor() ->getMock(); if ($number === 'abc') { - $phoneNumberUtilMock->method('parse')->willThrowException(new NumberParseException(0, 'message')); + $phoneNumberUtilMock->expects($this->exactly((int) ($country !== 'DEX')))->method('parse') + ->willThrowException(new NumberParseException(0, 'message')); } else { - $phoneNumberUtilMock->method('parse')->willReturn(new PhoneNumber()); + $phoneNumberUtilMock->expects($this->exactly((int) ($country !== 'DEX')))->method('parse') + ->willReturn(new PhoneNumber()); } $phoneNumberUtilMock->method('format')->willReturn($number); - $phoneNumberUtilMock->method('isValidNumber')->willReturn($validNumber); + $phoneNumberUtilMock->method('isValidNumber')->willReturn((bool) $validNumber); /** @var Sender|MockObject $senderMock */ $senderMock = $this->getMockBuilder(Sender::class) @@ -131,7 +153,12 @@ class SenderTest extends ApiTestCase $senderMock->method('getPhoneNumberUtil')->willReturn($phoneNumberUtilMock); $this->expectException($expectedException); - $senderMock->__construct($number, $country); + + $this->callMethod( + $senderMock, + '__construct', + [$number, $country] + ); } /** @@ -147,13 +174,14 @@ class SenderTest extends ApiTestCase 'empty number' => ['', 'DE', true, InvalidArgumentException::class], 'invalid country code' => [$phoneNumberFixture, 'DEX', true, InvalidArgumentException::class], 'unparsable' => ['abc', 'DE', true, NumberParseException::class], - 'invalid number' => ['abc', 'DE', false, NumberParseException::class] + 'invalid number' => ['abcd', 'DE', false, RecipientException::class] ]; } /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\Sender::getPhoneNumberUtil */ public function testGetPhoneNumberUtil() { @@ -165,4 +193,42 @@ class SenderTest extends ApiTestCase ) ); } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::get + * @covers \D3\LinkmobilityClient\ValueObject\StringValueObject::get + * @covers \D3\LinkmobilityClient\ValueObject\Sender::get + */ + public function testGet() + { + $this->assertSame( + '+4915123456789', + $this->callMethod( + $this->sender, + 'get' + ) + ); + } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::getFormatted + * @covers \D3\LinkmobilityClient\ValueObject\StringValueObject::getFormatted + * @covers \D3\LinkmobilityClient\ValueObject\Sender::getFormatted + */ + public function testGetFormatted() + { + $this->assertSame( + '4915123456789', + $this->callMethod( + $this->sender, + 'getFormatted' + ) + ); + } } diff --git a/Tests/ValueObject/SmsBinaryMessageTest.php b/Tests/ValueObject/SmsBinaryMessageTest.php index aa1e2bb..a45aee1 100644 --- a/Tests/ValueObject/SmsBinaryMessageTest.php +++ b/Tests/ValueObject/SmsBinaryMessageTest.php @@ -53,6 +53,7 @@ class SmsBinaryMessageTest extends ApiTestCase * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::__construct */ public function testConstructValid() { @@ -89,6 +90,7 @@ class SmsBinaryMessageTest extends ApiTestCase * * @throws ReflectionException * @dataProvider constructInvalidDataProvider + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::__construct */ public function testConstructInvalid($binaryMessage, $valid, $expectedException) { @@ -136,6 +138,7 @@ class SmsBinaryMessageTest extends ApiTestCase /** * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::getSmsLength */ public function testGetSmsLengthInstance() { @@ -149,7 +152,9 @@ class SmsBinaryMessageTest extends ApiTestCase } /** + * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::chunkCount */ public function testGetChunkCount() { @@ -180,7 +185,9 @@ class SmsBinaryMessageTest extends ApiTestCase } /** + * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::length */ public function testGetSize() { @@ -211,7 +218,10 @@ class SmsBinaryMessageTest extends ApiTestCase } /** + * @test * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsBinaryMessage::getMessageContent + * @covers \D3\LinkmobilityClient\ValueObject\SmsMessageAbstract::getMessageContent */ public function testGetMessageContent() { diff --git a/Tests/ValueObject/SmsTextMessageTest.php b/Tests/ValueObject/SmsTextMessageTest.php index ed2ac1b..86a2ca7 100644 --- a/Tests/ValueObject/SmsTextMessageTest.php +++ b/Tests/ValueObject/SmsTextMessageTest.php @@ -42,6 +42,7 @@ class SmsTextMessageTest extends SmsBinaryMessageTest * @test * @return void * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\SmsTextMessage::__construct */ public function testConstructValid() { @@ -78,6 +79,7 @@ class SmsTextMessageTest extends SmsBinaryMessageTest * * @throws ReflectionException * @dataProvider constructInvalidDataProvider + * @covers \D3\LinkmobilityClient\ValueObject\SmsTextMessage::__construct */ public function testConstructInvalid($binaryMessage, $valid, $expectedException) { diff --git a/Tests/ValueObject/ValueObjectTest.php b/Tests/ValueObject/ValueObjectTest.php new file mode 100644 index 0000000..51ad87d --- /dev/null +++ b/Tests/ValueObject/ValueObjectTest.php @@ -0,0 +1,88 @@ + + * @link https://www.oxidmodule.com + */ + +declare(strict_types=1); + +namespace D3\LinkmobilityClient\Tests\ValueObject; + +use Assert\InvalidArgumentException; +use D3\LinkmobilityClient\Exceptions\NoSenderDefinedException; +use D3\LinkmobilityClient\Exceptions\RecipientException; +use D3\LinkmobilityClient\Tests\ApiTestCase; +use D3\LinkmobilityClient\ValueObject\Sender; +use D3\LinkmobilityClient\ValueObject\ValueObject; +use libphonenumber\NumberParseException; +use libphonenumber\PhoneNumber; +use libphonenumber\PhoneNumberFormat; +use libphonenumber\PhoneNumberType; +use libphonenumber\PhoneNumberUtil; +use PHPUnit\Framework\MockObject\MockObject; +use ReflectionException; + +class ValueObjectTest extends ApiTestCase +{ + public function setUp(): void + { + parent::setUp(); + + /** @var ValueObject|MockObject value */ + $this->value = $this->getMockBuilder(ValueObject::class) + ->disableOriginalConstructor() + ->getMock(); + } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::__construct + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::get + */ + public function testConstructValid() + { + $phoneUtil = PhoneNumberUtil::getInstance(); + $example = $phoneUtil->getExampleNumberForType('DE', PhoneNumberType::MOBILE); + $phoneNumberFixture = $phoneUtil->format($example, PhoneNumberFormat::NATIONAL); + + $this->callMethod( + $this->value, + '__construct', + [$phoneNumberFixture] + ); + + $this->assertSame( + '01512 3456789', + $this->getValue( + $this->value, + 'value' + ) + ); + } + + /** + * @test + * @return void + * @throws ReflectionException + * @covers \D3\LinkmobilityClient\ValueObject\ValueObject::__construct + */ + public function testConstructInvalid() + { + $this->expectException(InvalidArgumentException::class); + + $this->callMethod( + $this->value, + '__construct', + [''] + ); + } +} \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml index 14a145c..4ffb4a9 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -5,7 +5,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true"> - + ./Tests diff --git a/src/ValueObject/SmsBinaryMessage.php b/src/ValueObject/SmsBinaryMessage.php index e276628..57da492 100644 --- a/src/ValueObject/SmsBinaryMessage.php +++ b/src/ValueObject/SmsBinaryMessage.php @@ -35,7 +35,7 @@ class SmsBinaryMessage extends SmsMessageAbstract public function getMessageContent() { return str_split( - base64_encode($this->get()), + base64_encode(parent::getMessageContent()), SmsLength::MAXIMUM_CHARACTERS_UCS2_SINGLE ); }