forked from OpenClassrooms/UseCase
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
793ebed
commit dd297e9
Showing
21 changed files
with
252 additions
and
78 deletions.
There are no files selected for viewing
13 changes: 13 additions & 0 deletions
13
src/OpenClassrooms/UseCase/Application/Responder/PaginatedUseCaseResponseFactoryImpl.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\UseCase\Application\Responder; | ||
|
||
use OpenClassrooms\UseCase\BusinessRules\Responders\AbstractPaginatedUseCaseResponseFactory; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
class PaginatedUseCaseResponseFactoryImpl extends AbstractPaginatedUseCaseResponseFactory | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
...enClassrooms/UseCase/BusinessRules/Responders/AbstractPaginatedUseCaseResponseFactory.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\UseCase\BusinessRules\Responders; | ||
|
||
use OpenClassrooms\UseCase\BusinessRules\Entities\PaginatedCollection; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
abstract class AbstractPaginatedUseCaseResponseFactory implements PaginatedUseCaseResponseFactory | ||
{ | ||
/** | ||
* @var PaginatedUseCaseResponseBuilder | ||
*/ | ||
private $paginatedUseCaseResponseBuilder; | ||
|
||
/** | ||
* @return AbstractPaginatedUseCaseResponse | ||
*/ | ||
public function createFromPaginatedCollection(PaginatedCollection $paginatedCollection) | ||
{ | ||
return $this->paginatedUseCaseResponseBuilder->create() | ||
->withItems($paginatedCollection->getItems()) | ||
->withItemsPerPage($paginatedCollection->getItemsPerPage()) | ||
->withPage($paginatedCollection->getPage()) | ||
->withTotalItems($paginatedCollection->getTotalItems()) | ||
->build(); | ||
} | ||
|
||
public function setPaginatedUseCaseResponseBuilder(PaginatedUseCaseResponseBuilder $paginatedUseCaseResponseBuilder) | ||
{ | ||
$this->paginatedUseCaseResponseBuilder = $paginatedUseCaseResponseBuilder; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,8 +2,6 @@ | |
|
||
namespace OpenClassrooms\UseCase\BusinessRules\Responders; | ||
|
||
use OpenClassrooms\UseCase\BusinessRules\Responders\Exceptions\InvalidPaginatedUseCaseResponseException; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
|
@@ -65,14 +63,6 @@ public function withTotalItems($totalItems) | |
*/ | ||
public function build() | ||
{ | ||
if (null === $this->paginatedUseCaseResponse->getItems()) { | ||
throw new InvalidPaginatedUseCaseResponseException('Items MUST be defined'); | ||
} | ||
|
||
if (null === $this->paginatedUseCaseResponse->getTotalItems()) { | ||
throw new InvalidPaginatedUseCaseResponseException('TotalItems MUST be defined'); | ||
} | ||
|
||
return $this->paginatedUseCaseResponse; | ||
} | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/OpenClassrooms/UseCase/BusinessRules/Responders/PaginatedUseCaseResponseFactory.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\UseCase\BusinessRules\Responders; | ||
|
||
use OpenClassrooms\UseCase\BusinessRules\Entities\PaginatedCollection; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
interface PaginatedUseCaseResponseFactory | ||
{ | ||
/** | ||
* @return AbstractPaginatedUseCaseResponse | ||
*/ | ||
public function createFromPaginatedCollection(PaginatedCollection $paginatedCollection); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,7 @@ | |
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Impl\ProxyStrategyRequestFactoryImpl; | ||
use OpenClassrooms\Tests\UseCase\BusinessRules\Exceptions\UseCaseException; | ||
use OpenClassrooms\Tests\UseCase\BusinessRules\Requestors\UseCaseRequestStub; | ||
use OpenClassrooms\Tests\UseCase\BusinessRules\Responders\UseCaseResponseStub; | ||
use OpenClassrooms\Tests\UseCase\BusinessRules\Responders\Doubles\UseCaseResponseStub; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
tests/OpenClassrooms/UseCase/BusinessRules/Entities/PaginatedCollectionBuilderTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\Tests\UseCase\BusinessRules\Entities; | ||
|
||
use OpenClassrooms\UseCase\Application\Entity\PaginatedCollectionBuilderImpl; | ||
use OpenClassrooms\UseCase\Application\Entity\PaginatedCollectionImpl; | ||
use OpenClassrooms\UseCase\BusinessRules\Entities\PaginatedCollectionBuilder; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
class PaginatedCollectionBuilderTest extends \PHPUnit_Framework_TestCase | ||
{ | ||
/** | ||
* @var PaginatedCollectionBuilder | ||
*/ | ||
private $builder; | ||
|
||
/** | ||
* @test | ||
*/ | ||
public function WithoutTotalItems_ThrowException() | ||
{ | ||
$paginatedCollection = $this->builder->create()->build(); | ||
$this->assertEquals(new PaginatedCollectionImpl(), $paginatedCollection); | ||
} | ||
|
||
/** | ||
* @test | ||
*/ | ||
public function ReturnPaginatedCollection() | ||
{ | ||
$expectedItems = array('item1', 'item2', 'item3'); | ||
$expectedItemsPerPage = 2; | ||
$expectedPage = 2; | ||
$paginatedCollection = $this->builder | ||
->create() | ||
->withItems($expectedItems) | ||
->withItemsPerPage($expectedItemsPerPage) | ||
->withPage($expectedPage) | ||
->withTotalItems(count($expectedItems)) | ||
->build(); | ||
|
||
$this->assertEquals($expectedItems, $paginatedCollection->getItems()); | ||
$this->assertEquals($expectedItemsPerPage, $paginatedCollection->getItemsPerPage()); | ||
$this->assertEquals($expectedPage, $paginatedCollection->getPage()); | ||
$this->assertEquals(count($expectedItems), $paginatedCollection->getTotalItems()); | ||
$this->assertEquals(2, $paginatedCollection->getTotalPages()); | ||
} | ||
|
||
protected function setUp() | ||
{ | ||
$this->builder = new PaginatedCollectionBuilderImpl(); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
tests/OpenClassrooms/UseCase/BusinessRules/Entities/PaginatedCollectionTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\Tests\UseCase\BusinessRules\Entities; | ||
|
||
use OpenClassrooms\UseCase\Application\Entity\PaginatedCollectionImpl; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
*/ | ||
class PaginatedCollectionTest extends \PHPUnit_Framework_TestCase | ||
{ | ||
/** | ||
* @test | ||
*/ | ||
public function NewPaginatedCollection_ReturnPaginatedCollection() | ||
{ | ||
$paginatedCollection = new PaginatedCollectionImpl(); | ||
$this->assertEmpty($paginatedCollection->getItems()); | ||
$this->assertEquals(0, $paginatedCollection->getItemsPerPage()); | ||
$this->assertEquals(1, $paginatedCollection->getPage()); | ||
$this->assertEquals(0, $paginatedCollection->getTotalItems()); | ||
$this->assertEquals(1, $paginatedCollection->getTotalPages()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,5 +9,5 @@ | |
*/ | ||
class PaginatedUseCaseResponseStub extends AbstractPaginatedUseCaseResponse | ||
{ | ||
|
||
} |
2 changes: 1 addition & 1 deletion
2
.../Responders/UseCaseCachedResponseStub.php → ...ers/Doubles/UseCaseCachedResponseStub.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
<?php | ||
|
||
namespace OpenClassrooms\Tests\UseCase\BusinessRules\Responders; | ||
namespace OpenClassrooms\Tests\UseCase\BusinessRules\Responders\Doubles; | ||
|
||
/** | ||
* @author Romain Kuzniak <[email protected]> | ||
|
2 changes: 1 addition & 1 deletion
2
...sRules/Responders/UseCaseResponseStub.php → ...esponders/Doubles/UseCaseResponseStub.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.