mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2024-12-04 23:17:19 +01:00
Implemented draft for PureSourceCreateType Test and adapted classes to it
This commit is contained in:
parent
aafde4c0f9
commit
1bc85c994e
@ -4,6 +4,8 @@ namespace App\Attribut;
|
||||
|
||||
/**
|
||||
* @author kevinfrantz
|
||||
*
|
||||
* @see IdAttributInterface
|
||||
*/
|
||||
trait IdAttribut
|
||||
{
|
||||
@ -12,16 +14,25 @@ trait IdAttribut
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function setId(int $id): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
public function getId(): int
|
||||
/**
|
||||
* @return int|null
|
||||
*/
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasId(): bool
|
||||
{
|
||||
return isset($this->id);
|
||||
|
@ -13,9 +13,14 @@ interface IdAttributInterface
|
||||
public function setId(int $id): void;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
* Don't use this function to check if an id is set.
|
||||
* Use instead:.
|
||||
*
|
||||
* @see self::hasId()
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getId(): int;
|
||||
public function getId(): ?int;
|
||||
|
||||
/**
|
||||
* @return bool Checks if attribute is set
|
||||
|
@ -30,9 +30,9 @@ trait SlugAttribut
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @return string|null
|
||||
*/
|
||||
public function getSlug(): string
|
||||
public function getSlug(): ?string
|
||||
{
|
||||
return $this->slug;
|
||||
}
|
||||
|
@ -15,9 +15,14 @@ interface SlugAttributInterface
|
||||
public function setSlug(string $slug): void;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* Don't use this function to check if a slug is set
|
||||
* Use instead:.
|
||||
*
|
||||
* @see self::hasSlug()
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getSlug(): string;
|
||||
public function getSlug(): ?string;
|
||||
|
||||
/**
|
||||
* @return bool Checks if a slug is set
|
||||
|
@ -35,11 +35,16 @@ final class CreateSourceAction extends AbstractCreateAction
|
||||
$this->sourceClass = $request->get(SourceType::CLASS_PARAMETER_NAME, self::DEFAULT_CLASS);
|
||||
}
|
||||
|
||||
private function setFormClass(): void
|
||||
private function setForm(): void
|
||||
{
|
||||
$this->form = $this->actionService->getCurrentFormBuilder()->getForm();
|
||||
}
|
||||
|
||||
private function setRequestedEntityClass(): void
|
||||
{
|
||||
$this->actionService->getRequestedAction()->getRequestedEntity()->setClass($this->sourceClass);
|
||||
}
|
||||
|
||||
private function handleRequest(): void
|
||||
{
|
||||
$this->form->handleRequest($this->actionService->getRequest());
|
||||
@ -53,7 +58,8 @@ final class CreateSourceAction extends AbstractCreateAction
|
||||
protected function prepare(): void
|
||||
{
|
||||
$this->setSourceClass();
|
||||
$this->setFormClass();
|
||||
$this->setRequestedEntityClass();
|
||||
$this->setForm();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -63,6 +69,11 @@ final class CreateSourceAction extends AbstractCreateAction
|
||||
*/
|
||||
protected function isValid(): bool
|
||||
{
|
||||
//The following Exception just exists out of debuging reasons during the development process
|
||||
if (!$this->form->isSubmitted()) {
|
||||
throw new \Exception('The form is not submitted!');
|
||||
}
|
||||
|
||||
return $this->form->isValid();
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,6 @@ final class PureSourceCreateType extends SourceType
|
||||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('slug')->add('class');
|
||||
$builder->add('slug');
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use App\Domain\FormManagement\RequestedActionFormBuilderService;
|
||||
use App\Domain\FormManagement\FormClassNameService;
|
||||
use App\Domain\RequestManagement\Entity\RequestedEntityService;
|
||||
use App\Entity\Source\PureSource;
|
||||
use App\Attribut\ClassAttributInterface;
|
||||
|
||||
/**
|
||||
* @todo Implement test and logic!!!!!
|
||||
@ -77,6 +79,7 @@ class CreateSourceActionIntegrationTest extends KernelTestCase
|
||||
|
||||
public function testCreateWithGuestUser(): void
|
||||
{
|
||||
$this->request->attributes->set(ClassAttributInterface::CLASS_ATTRIBUT_NAME, PureSource::class);
|
||||
$this->assertInstanceOf(PureSourceInterface::class, $this->createSourceAction->execute());
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,6 @@ class PureSourceIntegrationTest extends KernelTestCase
|
||||
$this->assertGreaterThan(0, $this->pureSource->getId());
|
||||
$this->entityManager->remove($this->pureSource);
|
||||
$this->entityManager->flush();
|
||||
$this->expectException(\TypeError::class);
|
||||
$this->pureSource->getId();
|
||||
$this->assertNull($this->pureSource->getId());
|
||||
}
|
||||
}
|
||||
|
@ -26,8 +26,7 @@ class IdAttributTest extends TestCase
|
||||
public function testConstruct(): void
|
||||
{
|
||||
$this->assertFalse($this->id->hasId());
|
||||
$this->expectException(\TypeError::class);
|
||||
$this->id->getId();
|
||||
$this->assertNull($this->id->getId());
|
||||
}
|
||||
|
||||
public function testAccessors(): void
|
||||
|
@ -27,8 +27,7 @@ class SlugAttributTest extends TestCase
|
||||
public function testConstructor(): void
|
||||
{
|
||||
$this->assertFalse($this->slugAttribut->hasSlug());
|
||||
$this->expectException(\TypeError::class);
|
||||
$this->slugAttribut->getSlug();
|
||||
$this->assertNull($this->slugAttribut->getSlug());
|
||||
}
|
||||
|
||||
public function testAccessors(): void
|
||||
|
@ -22,8 +22,7 @@ class AbstractEntityTest extends TestCase
|
||||
public function testConstructor(): void
|
||||
{
|
||||
$this->assertEquals(0, $this->entity->getVersion());
|
||||
$this->expectException(\TypeError::class);
|
||||
$this->entity->getId();
|
||||
$this->assertNull($this->entity->getId());
|
||||
}
|
||||
|
||||
public function testVersion(): void
|
||||
|
@ -38,7 +38,6 @@ class AbstractSourceTest extends TestCase
|
||||
|
||||
public function testSlugInit(): void
|
||||
{
|
||||
$this->expectException(\TypeError::class);
|
||||
$this->source->getSlug();
|
||||
$this->assertNull($this->source->getSlug());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace tests\Unit\Form\Source;
|
||||
|
||||
use Symfony\Component\Form\Test\TypeTestCase;
|
||||
use App\Entity\Source\PureSource;
|
||||
use App\Form\Source\PureSourceCreateType;
|
||||
|
||||
/**
|
||||
* @author kevinfrantz
|
||||
*
|
||||
* @see https://symfony.com/doc/current/form/unit_testing.html
|
||||
*/
|
||||
class PureSourceCreateTypeTest extends TypeTestCase
|
||||
{
|
||||
const SLUG = 'ABCDE';
|
||||
|
||||
public function testAttributes(): void
|
||||
{
|
||||
$formData = ['slug' => self::SLUG];
|
||||
$objectToCompare = new PureSource();
|
||||
$form = $this->factory->create(PureSourceCreateType::class, $objectToCompare);
|
||||
|
||||
$object = new PureSource();
|
||||
$object->setSlug(self::SLUG);
|
||||
$object->setCreatorRelation($objectToCompare->getCreatorRelation());
|
||||
|
||||
// submit the data to the form directly
|
||||
$form->submit($formData);
|
||||
|
||||
$this->assertTrue($form->isSynchronized());
|
||||
// check that $objectToCompare was modified as expected when the form was submitted
|
||||
//$this->assertEquals($object, $objectToCompare);
|
||||
|
||||
$view = $form->createView();
|
||||
$children = $view->children;
|
||||
|
||||
foreach (array_keys($formData) as $key) {
|
||||
$this->assertArrayHasKey($key, $children);
|
||||
}
|
||||
}
|
||||
}
|
@ -52,8 +52,7 @@ class UserSourceRepositoryTest extends KernelTestCase
|
||||
$this->assertGreaterThan(0, $insertSource->getId());
|
||||
$this->entityManager->remove($insertSource);
|
||||
$this->entityManager->flush();
|
||||
$this->expectException(\TypeError::class);
|
||||
$insertSource->getId();
|
||||
$this->assertNull($insertSource->getId());
|
||||
}
|
||||
|
||||
public function testCreation(): void
|
||||
|
Loading…
Reference in New Issue
Block a user