mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-06-29 04:32:29 +02:00
34 lines
1.0 KiB
PHP
34 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace DesignPatterns\Behavioral\Command\Tests;
|
|
|
|
use DesignPatterns\Behavioral\Command\AddMessageDateCommand;
|
|
use DesignPatterns\Behavioral\Command\HelloCommand;
|
|
use DesignPatterns\Behavioral\Command\Invoker;
|
|
use DesignPatterns\Behavioral\Command\Receiver;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class UndoableCommandTest extends TestCase
|
|
{
|
|
public function testInvocation()
|
|
{
|
|
$invoker = new Invoker();
|
|
$receiver = new Receiver();
|
|
|
|
$invoker->setCommand(new HelloCommand($receiver));
|
|
$invoker->run();
|
|
$this->assertSame('Hello World', $receiver->getOutput());
|
|
|
|
$messageDateCommand = new AddMessageDateCommand($receiver);
|
|
$messageDateCommand->execute();
|
|
|
|
$invoker->run();
|
|
$this->assertSame("Hello World\nHello World [".date('Y-m-d').']', $receiver->getOutput());
|
|
|
|
$messageDateCommand->undo();
|
|
|
|
$invoker->run();
|
|
$this->assertSame("Hello World\nHello World [".date('Y-m-d')."]\nHello World", $receiver->getOutput());
|
|
}
|
|
}
|