Search by

ericfortmeyer / mock-extern-service

ericfortmeyer

This package is abandoned and no longer maintained. No replacement package was suggested.

To mock service like mail or UDP socket for functional Tests. TDD, PHPUnit

Package info

github.com/ericfortmeyer/mock-extern-service

pkg:composer/ericfortmeyer/mock-extern-service

Statistics

Installs: 10

Dependents: 0

Suggesters: 0

Stars: 0

v0.2.2 2021-04-27 20:38 UTC

This package is auto-updated.

Last update: 2026-10-22 19:37:27 UTC


README

Build Status

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 "ericfortmeyer/mock-extern-service"

Booting

At first to you must booting this system, that can you do in the bootstrap file see.

\Fortmeyer\MockExternService\Service::boot();

Than you must start PHPUnit with PHP interpreter option -d sendmail_path=mock-service/smtp-mock-server.php This script will mock the Mail System.

Assert

Mock Mails System

with Fortmeyer\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 Fortmeyer\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