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()
{
$this->version = 0;
}
public function __toString(): string

View File

@ -25,6 +25,7 @@ final class Law extends AbstractMeta implements LawInterface
public function __construct()
{
parent::__construct();
$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\JoinColumn(name="source_id", referencedColumnName="id")
* @ORM\JoinColumn(name="source_id", referencedColumnName="id",onDelete="CASCADE")
*
* @var SourceInterface
*/
@ -70,6 +70,7 @@ final class Relation extends AbstractMeta implements RelationInterface
public function __construct()
{
parent::__construct();
$this->law = new Law();
$this->parents = new ArrayCollection();
$this->childs = new ArrayCollection();

View File

@ -32,7 +32,7 @@ abstract class AbstractSource extends AbstractEntity implements SourceInterface
/**
* @var RelationInterface
* @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
*/
protected $relation;

View File

@ -18,7 +18,7 @@ class UserSource extends AbstractCombinationSource implements UserSourceInterfac
/**
* @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
*/

View File

@ -22,7 +22,7 @@ class User extends BaseUser implements UserInterface
/**
* @var UserSourceInterface
* @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;
@ -51,6 +51,7 @@ class User extends BaseUser implements UserInterface
public function __construct()
{
parent::__construct();
$this->version = 0;
$this->isActive = true;
$this->source = new UserSource();
$this->source->setUser($this);

View File

@ -21,9 +21,9 @@ class AbstractEntityTest extends TestCase
public function testConstructor(): void
{
$this->assertEquals(0, $this->entity->getVersion());
$this->expectException(\TypeError::class);
$this->entity->getId();
$this->entity->getVersion();
}
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->getParents());
$this->assertEquals(0, $this->relation->getVersion());
$this->expectException(\TypeError::class);
$this->relation->getSource();
}

View File

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

View File

@ -10,7 +10,6 @@ use App\Entity\UserInterface;
class UserRepositoryTest extends KernelTestCase
{
const USER_ID = 123456789;
/**
* @var EntityManager
*/
@ -28,17 +27,27 @@ class UserRepositoryTest extends KernelTestCase
$this->userRepository = $this->entityManager->getRepository(User::class);
}
/**
* @todo Test double username
* @todo Test double email
*/
public function testCreation(): void
{
$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->flush();
$userId = $user->getId();
/**
* @var UserInterface
*/
$loadedUser = $this->userRepository->find(self::USER_ID);
$this->assertEquals(self::USER_ID, $loadedUser->getId());
$loadedUser = $this->userRepository->find($userId);
$this->assertEquals($userId, $loadedUser->getId());
$this->entityManager->remove($loadedUser);
$this->entityManager->flush();
$this->assertNull($this->userRepository->find($userId));
}
/**