Implemented UniqueInterface, User and tests

This commit is contained in:
Kevin Frantz 2018-07-14 14:15:36 +02:00
parent 400e64a822
commit 14fff41c96
6 changed files with 51 additions and 17 deletions

View File

@ -0,0 +1,22 @@
<?php
namespace entity;
/**
* This interface is needed for handling unique entities.
* Unique entities are defined by an id
* @author kevinfrantz
*
*/
interface UniqueInterface
{
/**
* @return int
*/
public function getId():int;
/**
* @param int $id
*/
public function setId(int $id):void;
}

View File

@ -4,6 +4,7 @@ namespace entity\order;
use entity\product\ProductInterface; use entity\product\ProductInterface;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use entity\user\UserInterface; use entity\user\UserInterface;
use entity\UniqueInterface;
/** /**
* Status in this class is bool * Status in this class is bool
@ -18,7 +19,7 @@ use entity\user\UserInterface;
* @author kevinfrantz * @author kevinfrantz
* *
*/ */
interface OrderInterface interface OrderInterface extends UniqueInterface
{ {
/** /**
* @param ProductInterface $product * @param ProductInterface $product
@ -35,13 +36,6 @@ interface OrderInterface
*/ */
public function getProducts():ArrayCollection; public function getProducts():ArrayCollection;
/**
* @return int
*/
public function getId():int;
public function setId(int $id):void;
/** /**
* @return UserInterface * @return UserInterface
*/ */

View File

@ -3,6 +3,7 @@ namespace entity\product;
use entity\price\PriceInterface; use entity\price\PriceInterface;
use entity\image\ImageInterface; use entity\image\ImageInterface;
use entity\UniqueInterface;
/** /**
* Attention: * Attention:
@ -12,7 +13,7 @@ use entity\image\ImageInterface;
* @author kevinfrantz * @author kevinfrantz
* *
*/ */
interface ProductInterface interface ProductInterface extends UniqueInterface
{ {
/** /**
* @return PriceInterface * @return PriceInterface
@ -53,12 +54,5 @@ interface ProductInterface
* @param string $color * @param string $color
*/ */
public function setColor(string $color):void; public function setColor(string $color):void;
/**
* @return int
*/
public function getId():int;
public function setId(int $id):void;
} }

View File

@ -23,6 +23,12 @@ final class User implements UserInterface
* @var string * @var string
*/ */
private $passwordHash; private $passwordHash;
/**
*
* @var int
*/
private $id;
public function setName(string $name): void public function setName(string $name): void
{ {
@ -53,5 +59,15 @@ final class User implements UserInterface
{ {
return $this->email; return $this->email;
} }
public function setId(int $id): void
{
$this->id = $id;
}
public function getId(): int
{
return $this->id;
}
} }

View File

@ -1,6 +1,8 @@
<?php <?php
namespace entity\user; namespace entity\user;
use entity\UniqueInterface;
/** /**
* Theoreticly you could make an own entity for name * Theoreticly you could make an own entity for name
* (Depends on the use case.) * (Depends on the use case.)
@ -9,7 +11,7 @@ namespace entity\user;
* @author kevinfrantz * @author kevinfrantz
* *
*/ */
interface UserInterface interface UserInterface extends UniqueInterface
{ {
/** /**
* @param string $hash * @param string $hash

View File

@ -16,6 +16,8 @@ class UserTest extends TestCase
const HASH = '1235'; const HASH = '1235';
const ID = 5678;
/** /**
* @var User * @var User
*/ */
@ -26,6 +28,7 @@ class UserTest extends TestCase
$this->user->setName(self::NAME); $this->user->setName(self::NAME);
$this->user->setEmail(self::EMAIL); $this->user->setEmail(self::EMAIL);
$this->user->setPasswordHash(self::HASH); $this->user->setPasswordHash(self::HASH);
$this->user->setId(self::ID);
} }
public function testName():void{ public function testName():void{
@ -40,5 +43,8 @@ class UserTest extends TestCase
$this->assertEquals(self::HASH, $this->user->getPasswordHash()); $this->assertEquals(self::HASH, $this->user->getPasswordHash());
} }
public function testId():void{
$this->assertEquals(self::ID, $this->user->getId());
}
} }