2
0

RegistryTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Test\Michel\PaperORM;
  3. use Michel\PaperORM\Collector\EntityDirCollector;
  4. use Michel\PaperORM\EntityManager;
  5. use Michel\PaperORM\Expression\Expr;
  6. use Michel\PaperORM\Migration\PaperMigration;
  7. use Michel\PaperORM\PaperConfiguration;
  8. use Michel\PaperORM\Proxy\ProxyInterface;
  9. use Michel\PaperORM\Tools\EntityExplorer;
  10. use Michel\UniTester\TestCase;
  11. use Test\Michel\PaperORM\Entity\PostTest;
  12. use Test\Michel\PaperORM\Entity\UserTest;
  13. use Test\Michel\PaperORM\Helper\DataBaseHelperTest;
  14. class RegistryTest extends TestCase
  15. {
  16. private string $migrationDir;
  17. protected function setUp(): void
  18. {
  19. $this->migrationDir = __DIR__ . '/migrations';
  20. $this->tearDown();
  21. }
  22. protected function tearDown(): void
  23. {
  24. $folder = $this->migrationDir;
  25. array_map('unlink', glob("$folder/*.*"));
  26. }
  27. protected function execute(): void
  28. {
  29. foreach (DataBaseHelperTest::drivers() as $params) {
  30. $em = EntityManager::createFromConfig(PaperConfiguration::fromArray($params));
  31. $paperMigration = PaperMigration::create($em, 'mig_versions', $this->migrationDir);
  32. $entityDirCollector = EntityDirCollector::bootstrap();
  33. $this->assertEquals(1, count($entityDirCollector->all()));
  34. $entities = EntityExplorer::getEntities($entityDirCollector->all());
  35. $this->assertEquals(1, count($entities['system']));
  36. $result = $paperMigration->getSqlDiffFromEntities($entities['system']);
  37. foreach ($result as $sql) {
  38. $em->getConnection()->executeStatement($sql);
  39. }
  40. $this->test($em);
  41. $em->getConnection()->close();
  42. }
  43. }
  44. private function test(EntityManager $em): void
  45. {
  46. $em->registry()->set('test', 'test');
  47. $this->assertEquals('test', $em->registry()->get('test'));
  48. $em->registry()->remove('test');
  49. $this->assertEquals(null, $em->registry()->get('test'));
  50. $value = $em->sequence()->peek("test");
  51. $this->assertEquals(1, $value);
  52. $em->sequence()->increment("test");
  53. $value = $em->sequence()->peek("test");
  54. $this->assertEquals(2, $value);
  55. }
  56. }