mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-05-14 10:26:01 +02:00
42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace DesignPatterns\Structural\Adapter\Tests;
|
|
|
|
use DesignPatterns\Structural\Adapter\EBookAdapter;
|
|
use DesignPatterns\Structural\Adapter\Kindle;
|
|
use DesignPatterns\Structural\Adapter\PaperBookInterface;
|
|
use DesignPatterns\Structural\Adapter\Book;
|
|
|
|
/**
|
|
* AdapterTest shows the use of an adapted e-book that behave like a book
|
|
* You don't have to change the code of your client
|
|
*/
|
|
class AdapterTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getBook()
|
|
{
|
|
return array(
|
|
array(new Book()),
|
|
// we build a "wrapped" electronic book in the adapter
|
|
array(new EBookAdapter(new Kindle()))
|
|
);
|
|
}
|
|
|
|
/**
|
|
* This client only knows paper book but surprise, surprise, the second book
|
|
* is in fact an electronic book, but both work the same way
|
|
*
|
|
* @param PaperBookInterface $book
|
|
*
|
|
* @dataProvider getBook
|
|
*/
|
|
public function testIAmAnOldClient(PaperBookInterface $book)
|
|
{
|
|
$book->open();
|
|
$book->turnPage();
|
|
}
|
|
}
|