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

View File

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

View File

@ -24,6 +24,12 @@ final class User implements UserInterface
*/
private $passwordHash;
/**
*
* @var int
*/
private $id;
public function setName(string $name): void
{
$this->name = $name;
@ -53,5 +59,15 @@ final class User implements UserInterface
{
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
namespace entity\user;
use entity\UniqueInterface;
/**
* Theoreticly you could make an own entity for name
* (Depends on the use case.)
@ -9,7 +11,7 @@ namespace entity\user;
* @author kevinfrantz
*
*/
interface UserInterface
interface UserInterface extends UniqueInterface
{
/**
* @param string $hash

View File

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