Add property support for modules.

This commit is contained in:
Austen McDonald
2016-08-18 22:12:13 +00:00
parent 837d936326
commit ccf51450b0
4 changed files with 93 additions and 0 deletions
+41
View File
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\Module;
use LotGD\Core\Models\ModuleProperty;
use LotGD\Core\Tests\ModelTestCase;
/**
@@ -27,4 +28,44 @@ class ModuleTest extends ModelTestCase
$em->flush();
}
public function testProperties()
{
$em = $this->getEntityManager();
// test default values
$module = $em->getRepository(Module::class)->find('lotgd/tests');
$this->assertSame(5, $module->getProperty("dragonkills", 5));
$this->assertNotSame(5, $module->getProperty("dragonkills", "5"));
$this->assertSame("hanniball", $module->getProperty("petname", "hanniball"));
// test setting variables, then getting
$module->setProperty("dragonkills", 5);
$this->assertSame(5, $module->getProperty("dragonkills"));
$this->assertNotSame("5", $module->getProperty("dragonkills"));
$module->setProperty("dragonkills", "20");
$this->assertNotSame(20, $module->getProperty("dragonkills"));
$this->assertSame("20", $module->getProperty("dragonkills"));
// save some other variables
$module->setProperty("testvar1", 5);
$module->setProperty("testvar2", [5 => 18]);
$module->setProperty("testvar3 9 8", "spam and eggs");
$module->setProperty("testvar4", true);
// test precreated property
$this->assertSame("hallo", $module->getProperty("test"));
// test flushing
$em->flush();
// revisit database and retrieve properties, check if the correct number is saved
$total = intval($em->createQueryBuilder()
->from(ModuleProperty::class, "u")
->select("COUNT(u.propertyName)")
->getQuery()->getSingleScalarResult());
$this->assertSame(6, $total);
}
}