2
0

OrmTestMemory.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace Test\PhpDevCommunity\PaperORM\Common;
  3. use PhpDevCommunity\PaperORM\EntityManager;
  4. use PhpDevCommunity\UniTester\TestCase;
  5. use Test\PhpDevCommunity\PaperORM\Entity\UserTest;
  6. use Test\PhpDevCommunity\PaperORM\Helper\DataBaseHelperTest;
  7. class OrmTestMemory extends TestCase
  8. {
  9. private EntityManager $em;
  10. protected function setUp(): void
  11. {
  12. $this->em = new EntityManager([
  13. 'driver' => 'sqlite',
  14. 'user' => null,
  15. 'password' => null,
  16. 'memory' => true,
  17. 'debug' => false
  18. ]);
  19. $this->setUpDatabaseSchema();
  20. }
  21. protected function setUpDatabaseSchema(): void
  22. {
  23. DataBaseHelperTest::init($this->em, 10000);
  24. }
  25. protected function tearDown(): void
  26. {
  27. $this->em->getConnection()->close();
  28. }
  29. protected function execute(): void
  30. {
  31. $memory = memory_get_usage();
  32. $users = $this->em->getRepository(UserTest::class)
  33. ->findBy()
  34. ->toObject()
  35. ;
  36. $this->assertStrictEquals(10000, count($users));
  37. foreach ($users as $user) {
  38. $this->assertInstanceOf(UserTest::class, $user);
  39. $this->assertNotEmpty($user);
  40. }
  41. $memory = memory_get_usage(true) - $memory;
  42. $memory = ceil($memory / 1024 / 1024);
  43. $this->assertTrue( $memory <= 30 );
  44. }
  45. }