2
0

RegistryTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Test\PhpDevCommunity\PaperORM;
  3. use PhpDevCommunity\PaperORM\Collector\EntityDirCollector;
  4. use PhpDevCommunity\PaperORM\EntityManager;
  5. use PhpDevCommunity\PaperORM\Expression\Expr;
  6. use PhpDevCommunity\PaperORM\Migration\PaperMigration;
  7. use PhpDevCommunity\PaperORM\PaperConfiguration;
  8. use PhpDevCommunity\PaperORM\Proxy\ProxyInterface;
  9. use PhpDevCommunity\PaperORM\Tools\EntityExplorer;
  10. use PhpDevCommunity\UniTester\TestCase;
  11. use Test\PhpDevCommunity\PaperORM\Entity\PostTest;
  12. use Test\PhpDevCommunity\PaperORM\Entity\UserTest;
  13. use Test\PhpDevCommunity\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. }