Added Deletor trait.

This commit is contained in:
Basilius Sauter
2016-04-16 07:30:03 +02:00
parent 7afa27246b
commit ac7c845d07
5 changed files with 53 additions and 5 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ use Doctrine\ORM\{
};
$configuration = Setup::createAnnotationMetadataConfiguration(["src/Models"], true);
$configuration->setQuoteStrategy(new \Doctrine\ORM\Mapping\AnsiQuoteStrategy());
$configuration->setQuoteStrategy(new AnsiQuoteStrategy());
$entityManager = EntityManager::create(["url" => "sqlite://:memory:"], $configuration);
+7 -2
View File
@@ -3,7 +3,7 @@ declare(strict_types=1);
namespace LotGD\Core\Models;
use LotGD\Core\Tools\Model\Creator;
use LotGD\Core\Tools\Model\{Creator, Deletor};
use Doctrine\ORM\Mapping\Entity;
/**
@@ -14,6 +14,7 @@ use Doctrine\ORM\Mapping\Entity;
*/
class Character {
use Creator;
use Deletor;
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
@@ -28,7 +29,7 @@ class Character {
private $properties;
/** @var array */
protected static $fillable = [
private static $fillable = [
"name",
"maxhealth",
];
@@ -65,6 +66,10 @@ class Character {
$this->displayName = $this->name;
}
/**
* Returns displayName, a combination of title, name and suffix, mixed with colour codes
* @return string The displayName
*/
public function getDisplayName(): string {
return $this->displayName;
}
+1 -1
View File
@@ -11,7 +11,7 @@ use LotGD\Core\Exceptions\{
};
/**
* Provides methods for creating new instances.
* Provides methods for creating new entities
*/
trait Creator {
/**
+25
View File
@@ -0,0 +1,25 @@
<?php
declare(strict_types=1);
namespace LotGD\Core\Tools\Model;
use Doctrine\ORM\EntityManagerInterface;
use LotGD\Core\Exceptions\{
AttributeMissingException,
WrongTypeException
};
/**
* Provides methods for deleting entities.
*/
trait Deletor {
/**
* Deletes the entity
* @param EntityManagerInterface $em
*/
public function delete(EntityManagerInterface $em) {
$em->remove($this);
$em->flush();
}
}
+19 -1
View File
@@ -41,7 +41,9 @@ class CharacterModelTest extends ModelTestCase {
$entities = $this->getEntityManager()->getRepository(Character::class)
->findAll();
$this->assertEquals(count($entities), count($characters));
$this->assertCount(count($characters), $entities);
return $entities;
}
/**
@@ -63,4 +65,20 @@ class CharacterModelTest extends ModelTestCase {
$char = Character::create($faultyCharacterData);
}
}
/**
* @depends testCreation
*/
public function testDeletion(array $characters) {
foreach($characters as $character) {
$character->save($this->getEntityManager());
}
$character = $this->getEntityManager()->getRepository(Character::class)->find(1);
$character->delete($this->getEntityManager());
$entities = $this->getEntityManager()->getRepository(Character::class)
->findAll();
$this->assertCount(1, $entities);
}
}