Implemented tests for UserRepository and mapped data schema

This commit is contained in:
Kevin Frantz 2018-11-17 14:48:48 +01:00
parent 5feac4d8ca
commit a7c58ba135
10 changed files with 24 additions and 9 deletions

View File

@ -31,6 +31,7 @@ abstract class AbstractEntity implements EntityInterface
public function __construct() public function __construct()
{ {
$this->version = 0;
} }
public function __toString(): string public function __toString(): string

View File

@ -25,6 +25,7 @@ final class Law extends AbstractMeta implements LawInterface
public function __construct() public function __construct()
{ {
parent::__construct();
$this->rights = new ArrayCollection(); $this->rights = new ArrayCollection();
} }
} }

View File

@ -54,7 +54,7 @@ final class Relation extends AbstractMeta implements RelationInterface
/** /**
* @ORM\OneToOne(targetEntity="App\Entity\Source\AbstractSource",cascade={"persist", "remove"}) * @ORM\OneToOne(targetEntity="App\Entity\Source\AbstractSource",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="source_id", referencedColumnName="id") * @ORM\JoinColumn(name="source_id", referencedColumnName="id",onDelete="CASCADE")
* *
* @var SourceInterface * @var SourceInterface
*/ */
@ -70,6 +70,7 @@ final class Relation extends AbstractMeta implements RelationInterface
public function __construct() public function __construct()
{ {
parent::__construct();
$this->law = new Law(); $this->law = new Law();
$this->parents = new ArrayCollection(); $this->parents = new ArrayCollection();
$this->childs = new ArrayCollection(); $this->childs = new ArrayCollection();

View File

@ -32,7 +32,7 @@ abstract class AbstractSource extends AbstractEntity implements SourceInterface
/** /**
* @var RelationInterface * @var RelationInterface
* @ORM\OneToOne(targetEntity="App\Entity\Meta\Relation",cascade={"persist", "remove"}) * @ORM\OneToOne(targetEntity="App\Entity\Meta\Relation",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="relation_id", referencedColumnName="id") * @ORM\JoinColumn(name="relation_id", referencedColumnName="id", onDelete="CASCADE")
* @Exclude * @Exclude
*/ */
protected $relation; protected $relation;

View File

@ -18,7 +18,7 @@ class UserSource extends AbstractCombinationSource implements UserSourceInterfac
/** /**
* @ORM\OneToOne(targetEntity="App\Entity\User",cascade={"persist", "remove"}) * @ORM\OneToOne(targetEntity="App\Entity\User",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") * @ORM\JoinColumn(name="user_id", referencedColumnName="id",onDelete="CASCADE")
* *
* @var UserInterface * @var UserInterface
*/ */

View File

@ -22,7 +22,7 @@ class User extends BaseUser implements UserInterface
/** /**
* @var UserSourceInterface * @var UserSourceInterface
* @ORM\OneToOne(targetEntity="App\Entity\Source\Combination\UserSource",cascade={"persist", "remove"}) * @ORM\OneToOne(targetEntity="App\Entity\Source\Combination\UserSource",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="source_user_id", referencedColumnName="id") * @ORM\JoinColumn(name="source_user_id", referencedColumnName="id", onDelete="CASCADE")
*/ */
protected $source; protected $source;
@ -51,6 +51,7 @@ class User extends BaseUser implements UserInterface
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
$this->version = 0;
$this->isActive = true; $this->isActive = true;
$this->source = new UserSource(); $this->source = new UserSource();
$this->source->setUser($this); $this->source->setUser($this);

View File

@ -21,9 +21,9 @@ class AbstractEntityTest extends TestCase
public function testConstructor(): void public function testConstructor(): void
{ {
$this->assertEquals(0, $this->entity->getVersion());
$this->expectException(\TypeError::class); $this->expectException(\TypeError::class);
$this->entity->getId(); $this->entity->getId();
$this->entity->getVersion();
} }
public function testVersion(): void public function testVersion(): void

View File

@ -23,6 +23,7 @@ class RelationTest extends TestCase
{ {
$this->assertInstanceOf(Collection::class, $this->relation->getChilds()); $this->assertInstanceOf(Collection::class, $this->relation->getChilds());
$this->assertInstanceOf(Collection::class, $this->relation->getParents()); $this->assertInstanceOf(Collection::class, $this->relation->getParents());
$this->assertEquals(0, $this->relation->getVersion());
$this->expectException(\TypeError::class); $this->expectException(\TypeError::class);
$this->relation->getSource(); $this->relation->getSource();
} }

View File

@ -32,6 +32,7 @@ class UserTest extends TestCase
public function testConstructor(): void public function testConstructor(): void
{ {
$this->assertInstanceOf(UserInterface::class, new User()); $this->assertInstanceOf(UserInterface::class, new User());
$this->assertEquals(0, $this->user->getVersion());
} }
public function testUsername(): void public function testUsername(): void

View File

@ -10,7 +10,6 @@ use App\Entity\UserInterface;
class UserRepositoryTest extends KernelTestCase class UserRepositoryTest extends KernelTestCase
{ {
const USER_ID = 123456789;
/** /**
* @var EntityManager * @var EntityManager
*/ */
@ -28,17 +27,27 @@ class UserRepositoryTest extends KernelTestCase
$this->userRepository = $this->entityManager->getRepository(User::class); $this->userRepository = $this->entityManager->getRepository(User::class);
} }
/**
* @todo Test double username
* @todo Test double email
*/
public function testCreation(): void public function testCreation(): void
{ {
$user = new User(); $user = new User();
$user->setId(self::USER_ID); $user->setUsername('Karl Marx');
$user->setEmail('mew21@test.de');
$user->setPassword('Friedrich ist kein Engel!:)');
$this->entityManager->persist($user); $this->entityManager->persist($user);
$this->entityManager->flush(); $this->entityManager->flush();
$userId = $user->getId();
/** /**
* @var UserInterface * @var UserInterface
*/ */
$loadedUser = $this->userRepository->find(self::USER_ID); $loadedUser = $this->userRepository->find($userId);
$this->assertEquals(self::USER_ID, $loadedUser->getId()); $this->assertEquals($userId, $loadedUser->getId());
$this->entityManager->remove($loadedUser);
$this->entityManager->flush();
$this->assertNull($this->userRepository->find($userId));
} }
/** /**