In between commit refactoring and implementing tests

This commit is contained in:
Kevin Frantz 2018-10-28 20:28:29 +01:00
parent 89396dfef3
commit de51649d63
21 changed files with 105 additions and 148 deletions

View File

@ -1,24 +0,0 @@
<?php
namespace App\Entity\Attribut;
/**
* @author kevinfrantz
*/
trait BlacklistAttribut
{
/**
* @var bool
*/
protected $blacklist;
public function setBlacklist(?bool $value): void
{
$this->blacklist = $value;
}
public function getBlacklist(): ?bool
{
return $this->blacklist;
}
}

View File

@ -1,13 +0,0 @@
<?php
namespace App\Entity\Attribut;
/**
* @author kevinfrantz
*/
interface BlacklistAttributInterface
{
public function setBlacklist(?bool $value): void;
public function getBlacklist(): ?bool;
}

View File

@ -2,7 +2,6 @@
namespace App\Entity\Attribut;
use App\Entity\NodeInterface;
use Doctrine\Common\Collections\Collection;
/**
@ -11,7 +10,7 @@ use Doctrine\Common\Collections\Collection;
trait ChildsAttribut
{
/**
* @var Collection|NodeInterface[]
* @var Collection|ChildsAttributeInterface[]
*/
protected $childs;

View File

@ -2,7 +2,6 @@
namespace App\Entity\Attribut;
use App\Entity\NodeInterface;
use Doctrine\Common\Collections\Collection;
/**
@ -11,7 +10,7 @@ use Doctrine\Common\Collections\Collection;
trait ParentsAttribut
{
/**
* @var Collection|NodeInterface[]
* @var Collection|ParentsAttributInterface[]
*/
protected $parents;

View File

@ -1,29 +0,0 @@
<?php
namespace App\Entity\Attribut;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @author kevinfrantz
*/
trait PlainPasswordAttribute
{
/**
* @Assert\NotBlank()
* @Assert\Length(max=4096)
*
* @var string
*/
private $plainPassword;
public function getPlainPassword(): ?string
{
return $this->plainPassword;
}
public function setPlainPassword(string $password): void
{
$this->plainPassword = $password;
}
}

View File

@ -1,24 +0,0 @@
<?php
namespace App\Entity\Attribut;
/**
* @author kevinfrantz
*/
trait WhitelistAttribut
{
/**
* @var bool
*/
protected $whitelist;
public function setWhitelist(?bool $value): void
{
$this->whitelist = $value;
}
public function getWhitelist(): ?bool
{
return $this->whitelist;
}
}

View File

@ -1,13 +0,0 @@
<?php
namespace App\Entity\Attribut;
/**
* @author kevinfrantz
*/
interface WhitelistAttributInterface
{
public function setWhitelist(?bool $value): void;
public function getWhitelist(): ?bool;
}

View File

@ -12,7 +12,7 @@ use App\Entity\Attribut\RelationAttribut;
* @ORM\Table(name="meta_law")
* @ORM\Entity(repositoryClass="App\Repository\LawRepository")
*/
class Law extends AbstractMeta implements LawInterface
final class Law extends AbstractMeta implements LawInterface
{
use RightsAttribute, RelationAttribut;
@ -24,15 +24,6 @@ class Law extends AbstractMeta implements LawInterface
*/
protected $rights;
/**
*
* @ORM\OneToOne(targetEntity="Relation",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="relation_id", referencedColumnName="id")
*
* @var RelationInterface
*/
protected $relation;
public function __construct()
{
$this->initAllRights();

View File

@ -9,6 +9,6 @@ use App\Entity\Method\RelationGrantedInterface;
/**
* @author kevinfrantz
*/
interface LawInterface extends RightsAttributInterface, RelationGrantedInterface, RelationAttributInterface,MetaInterface
interface LawInterface extends RightsAttributInterface, RelationGrantedInterface, MetaInterface
{
}

View File

@ -16,7 +16,7 @@ use App\Entity\Attribut\RelationAttributInterface;
* @ORM\Table(name="meta_reciever_group")
* @ORM\Entity()
*/
class RecieverGroup extends AbstractMeta implements RecieverGroupInterface
final class RecieverGroup extends AbstractMeta implements RecieverGroupInterface
{
use RelationAttribut,RecieverAttribut;

View File

@ -21,7 +21,7 @@ use Doctrine\Common\Collections\Collection;
* @ORM\Table(name="meta_relation")
* @ORM\Entity()
*/
class Relation extends AbstractMeta implements RelationInterface
final class Relation extends AbstractMeta implements RelationInterface
{
use IdAttribut,
SourceAttribut,
@ -76,6 +76,6 @@ class Relation extends AbstractMeta implements RelationInterface
$this->law = new Law();
$this->parents = new ArrayCollection();
$this->childs = new ArrayCollection();
$this->law->setNode($this);
//$this->law->setNode($this);
}
}

View File

@ -20,7 +20,7 @@ use App\Entity\Attribut\RelationAttribut;
* @ORM\Table(name="meta_right")
* @ORM\Entity(repositoryClass="App\Repository\RightRepository")
*/
class Right extends AbstractMeta implements RightInterface
final class Right extends AbstractMeta implements RightInterface
{
use TypeAttribut,LawAttribut, RelationAttribut, GrantAttribut,ConditionAttribut,RecieverGroupAttribut,LayerAttribut;

View File

@ -1,5 +1,4 @@
<?php
namespace App\Entity\Source;
use Doctrine\ORM\Mapping as ORM;
@ -10,10 +9,15 @@ use App\Entity\Source\Attribut\GroupSourcesAttribut;
use App\Entity\Meta\RelationInterface;
use App\Entity\Attribut\RelationAttribut;
use App\Entity\Meta\Relation;
use App\Entity\Attribut\LawAttribut;
use App\Entity\Meta\LawInterface;
use App\Entity\Meta\Law;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @author kevinfrantz
*
* @author kevinfrantz
*
* @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/inheritance-mapping.html
* @ORM\Entity
* @ORM\Table(name="source")
@ -23,9 +27,10 @@ use App\Entity\Meta\Relation;
*/
abstract class AbstractSource extends AbstractEntity implements SourceInterface
{
use RelationAttribut,GroupSourcesAttribut;
use RelationAttribut,GroupSourcesAttribut, LawAttribut;
/**
*
* @var RelationInterface
* @ORM\OneToOne(targetEntity="App\Entity\Meta\Relation",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="relation_id", referencedColumnName="id")
@ -34,17 +39,29 @@ abstract class AbstractSource extends AbstractEntity implements SourceInterface
protected $relation;
/**
*
* @todo Implement that just one table on database level is needed!
* @todo Rename table to use the right schema
* @var Collection|GroupSource[]
* @ORM\ManyToMany(targetEntity="GroupSource")
*/
protected $groups;
/**
*
* @ORM\OneToOne(targetEntity="Law",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="law_id", referencedColumnName="id")
*
* @var LawInterface
*/
protected $law;
public function __construct()
{
parent::__construct();
$this->relation = new Relation();
$this->relation->setSource($this);
$this->law = new Law();
$this->groups = new ArrayCollection();
}
}

View File

@ -12,7 +12,7 @@ use App\Entity\Source\Attribut\MembersAttribut;
* @ORM\Table(name="source_group")
* @ORM\Entity
*/
class GroupSource extends AbstractSource implements MembersAttributInterface
final class GroupSource extends AbstractSource implements MembersAttributInterface
{
use MembersAttribut;

View File

@ -12,7 +12,7 @@ use App\Entity\Source\NameSourceInterface;
* @ORM\Table(name="source_name")
* @ORM\Entity(repositoryClass="App\Repository\NameSourceRepository")
*/
class NameSource extends AbstractSource implements NameSourceInterface
final class NameSource extends AbstractSource implements NameSourceInterface
{
use NameAttribut;

View File

@ -4,11 +4,12 @@ namespace App\Entity\Source;
use App\Entity\Attribut\IdAttributInterface;
use App\Entity\EntityInterface;
use App\Entity\Source\Attribut\GroupSourcesAttributInterface;
use App\Entity\Attribut\LawAttributInterface;
/**
*
* @author kevinfrantz
*/
interface SourceInterface extends IdAttributInterface, EntityInterface, GroupSourcesAttributInterface
interface SourceInterface extends IdAttributInterface, EntityInterface, GroupSourcesAttributInterface, LawAttributInterface
{
}

View File

@ -13,7 +13,7 @@ use App\Entity\UserInterface;
* @ORM\Table(name="source_user")
* @ORM\Entity(repositoryClass="App\Repository\UserSourceRepository")
*/
class UserSource extends AbstractSource implements UserSourceInterface
final class UserSource extends AbstractSource implements UserSourceInterface
{
use UserAttribut,NameSourceAttribut;

View File

@ -46,12 +46,14 @@ class User extends BaseUser implements UserInterface
*/
protected $version;
/**
* @todo Initialize all needed attributs
*/
public function __construct()
{
parent::__construct();
$this->isActive = true;
$this->source = new UserSource();
LawModificator::grantAllRights($this->source->getNode()->getLaw(), $this->source->getNode());
//var_dump($this->source->getNode()->getLaw()->getRights()->get(0));
//LawModificator::grantAllRights($this->source->getNode()->getLaw(), $this->source->getNode());
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace App\Structur\Facade\Security\Source;
use App\Entity\Meta\LawInterface;
use App\Entity\Source\NameSourceInterface;
use App\Entity\Source\SourceInterface;
use App\Entity\UserInterface;
@ -10,7 +11,7 @@ use App\DBAL\Types\LayerType;
use Doctrine\Common\Collections\Collection;
/**
*
* @todo check if this layer makes sense
* @author kevinfrantz
*/
class UserSourceFacade extends AbstractSourceFacade implements UserSourceInterface
@ -96,4 +97,20 @@ class UserSourceFacade extends AbstractSourceFacade implements UserSourceInterfa
* @todo Implement
*/
}
public function setLaw(LawInterface $law): void
{
/**
*
* @todo Implement
*/
}
public function getLaw(): LawInterface
{
/**
*
* @todo Implement
*/
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace tests\unit\Entity\Source;
use PHPUnit\Framework\TestCase;
use App\Entity\Source\SourceInterface;
use App\Entity\Meta\LawInterface;
use App\Entity\Meta\RelationInterface;
use Doctrine\Common\Collections\Collection;
/**
*
* @author kevinfrantz
*
*/
class AbstractSourceTest extends TestCase
{
const ID = 123;
/**
* @var SourceInterface
*/
protected $source;
public function setUp(){
$this->source = new class extends \App\Entity\Source\AbstractSource{};
$this->source->setId(self::ID);
}
public function testId(){
$this->assertEquals($this->source->getId(),self::ID);
}
public function testLaw(){
$this->assertInstanceOf(LawInterface::class,$this->source->getLaw());
}
public function testRelation(){
$this->assertInstanceOf(RelationInterface::class,$this->source->getRelation());
}
public function testGroups(){
$this->assertInstanceOf(Collection::class,$this->source->getGroupSources());
}
}

View File

@ -4,9 +4,8 @@ namespace tests\unit\Entity;
use PHPUnit\Framework\TestCase;
use App\Entity\User;
use App\Entity\Meta\Law;
use App\Entity\Meta\Relation;
use App\Entity\Source\UserSource;
use App\Entity\UserInterface;
/**
* @author kevinfrantz
@ -19,24 +18,25 @@ class UserTest extends TestCase
const USERNAME = 'tester';
/**
* @var User
* @var UserInterface
*/
protected $user;
public function setUp(): void
{
$this->user = new User();
$this->user->setUsername(self::USERNAME);
$this->user->setPassword(self::PASSWORD);
}
public function testUsername(): void
{
$this->user->setUsername(self::USERNAME);
$this->assertEquals(self::USERNAME, $this->user->getUsername());
}
public function testPassword(): void
{
$this->user->setPassword(self::PASSWORD);
$this->assertEquals(self::PASSWORD, $this->user->getPassword());
}
@ -44,14 +44,4 @@ class UserTest extends TestCase
{
$this->assertInstanceOf(UserSource::class, $this->user->getSource());
}
public function testNode(): void
{
$this->assertInstanceOf(Relation::class, $this->user->getSource()->getNode());
}
public function testLaw(): void
{
$this->assertInstanceOf(Law::class, $this->user->getSource()->getNode()->getLaw());
}
}