Added Text source

This commit is contained in:
Kevin Frantz 2018-11-23 21:30:25 +01:00
parent 0ca2838ae2
commit 4066634af2
7 changed files with 129 additions and 1 deletions

View File

@ -0,0 +1,21 @@
<?php
namespace App\Entity\Attribut;
trait TextAttribut
{
/**
* @var string
*/
protected $text;
public function getText(): string
{
return $this->text;
}
public function setText(string $text): void
{
$this->text = $text;
}
}

View File

@ -0,0 +1,10 @@
<?php
namespace App\Entity\Attribut;
interface TextAttributInterface
{
public function getText(): string;
public function setText(string $text): void;
}

View File

@ -12,7 +12,7 @@ use App\Entity\Source\AbstractSource;
* @ORM\Table(name="source_data") * @ORM\Table(name="source_data")
* @ORM\InheritanceType("JOINED") * @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string") * @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"name" = "App\Entity\Source\Primitive\Name\AbstractNameSource"}) * @ORM\DiscriminatorMap({"name" = "App\Entity\Source\Primitive\Name\AbstractNameSource","text" = "App\Entity\Source\Primitive\Text\TextSource"})
*/ */
abstract class AbstractPrimitiveSource extends AbstractSource implements PrimitiveSourceInterface abstract class AbstractPrimitiveSource extends AbstractSource implements PrimitiveSourceInterface
{ {

View File

@ -0,0 +1,23 @@
<?php
namespace App\Entity\Source\Primitive\Text;
use App\Entity\Source\Primitive\AbstractPrimitiveSource;
use App\Entity\Attribut\TextAttribut;
use Doctrine\ORM\Mapping as ORM;
/**
* @author kevinfrantz
* @ORM\Entity
*/
class TextSource extends AbstractPrimitiveSource implements TextSourceInterface
{
use TextAttribut;
/**
* @ORM\Column(type="string")
*
* @var string
*/
protected $text;
}

View File

@ -0,0 +1,10 @@
<?php
namespace App\Entity\Source\Primitive\Text;
use App\Entity\Source\Primitive\PrimitiveSourceInterface;
use App\Entity\Attribut\TextAttributInterface;
interface TextSourceInterface extends PrimitiveSourceInterface, TextAttributInterface
{
}

View File

@ -0,0 +1,38 @@
<?php
namespace Tests\Unit\Entity\Attribut;
use PHPUnit\Framework\TestCase;
use App\Entity\Attribut\TextAttributInterface;
use App\Entity\Attribut\TextAttribut;
/**
* @author kevinfrantz
*/
class TextAttributTest extends TestCase
{
/**
* @var TextAttributInterface
*/
protected $textAttribut;
public function setUp(): void
{
$this->textAttribut = new class() implements TextAttributInterface {
use TextAttribut;
};
}
public function testConstructor(): void
{
$this->expectException(\TypeError::class);
$this->textAttribut->getText();
}
public function testAccessors(): void
{
$text = 'Hello World!';
$this->assertNull($this->textAttribut->setText($text));
$this->assertEquals($text, $this->textAttribut->getText());
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace Tests\Unit\Entity\Source\Primitive\Text;
use PHPUnit\Framework\TestCase;
use App\Entity\Source\Primitive\Text\TextSourceInterface;
use App\Entity\Source\Primitive\Text\TextSource;
class TextSourceTest extends TestCase
{
/**
* @var TextSourceInterface
*/
protected $textSource;
public function setUp(): void
{
$this->textSource = new TextSource();
}
public function testConstructor(): void
{
$this->expectException(\TypeError::class);
$this->textSource->getText();
}
}