Download the PHP package tumtum/mock-extern-service without Composer
On this page you can find all versions of the php package tumtum/mock-extern-service. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tumtum/mock-extern-service
More information about tumtum/mock-extern-service
Files in tumtum/mock-extern-service
Package mock-extern-service
Short Description To mock service like mail or UDP socket for functional Tests. TDD, PHPUnit
License MIT
Informations about the package mock-extern-service
Mock Extern Service
To mock service like mail or UDP socket for functional Tests. The result will be saved in a file and that can you assert.
Installation
composer require --dev "tumtum/mock-extern-service"
Booting
At first to you must booting this system, that can you do in the bootstrap file see.
\tm\MockExternService\Service::boot();
Than you must start PHPUnit with PHP interpreter option -d sendmail_path=[vendor/]bin/smtp-mock-server.php
This script will mock the Mail System.
Assert
Mock Mails System
with tm\MockExternService\Result::MailInbox()
get you the mail Content.
The PHP ini "sendmail_path" must be set to smtp-mock-server.php script. That get the Mail and save it. This config can only set befor starts the script. Like in php.ini or as command option (php -d)
Sample:
public function testMockMailSystem()
{
$msg = "Content " . time();
mail('root@@127.0.0.1', "subject", $msg);
$this->assertContains($msg, MockExternService\Result::MailInbox());
}
Mock UDP Socket
with tm\MockExternService\Result::UdpSockArrived()
get you 2048 Bit of Content.
Socket will be listen on:
host | port |
---|---|
127.0.0.1 | 13010 |
Sample:
public function testGrayLogServer()
{
$data = "graylog_data " . time();
$socket = fsockopen('udp://127.0.0.1:13010');
fputs($socket, $data);
$this->assertEquals($data, MockExternService\Result::UdpSockArrived());
}
Sample:
See PHPUnitTest command: php -d sendmail_path=mock-service/smtp-mock-server.php ./vendor/bin/phpunit
.
Chanelog
- v0.1 First Idea