Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Performance / PersisterPerformanceTest.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Performance/PersisterPerformanceTest.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Performance/PersisterPerformanceTest.php
new file mode 100644 (file)
index 0000000..ec43268
--- /dev/null
@@ -0,0 +1,121 @@
+<?php
+
+namespace Doctrine\Tests\ORM\Performance;
+
+use Doctrine\ORM\Tools\SchemaTool;
+use Doctrine\ORM\Query;
+use Doctrine\Tests\Models\CMS\CmsUser;
+use Doctrine\Tests\Models\CMS\CmsPhonenumber;
+use Doctrine\Tests\Models\CMS\CmsAddress;
+use Doctrine\Tests\Models\CMS\CmsGroup;
+use Doctrine\Tests\Models\CMS\CmsArticle;
+use Doctrine\Tests\Models\CMS\CmsComment;
+
+require_once __DIR__ . '/../../TestInit.php';
+
+/**
+ * @group performance
+ */
+class PersisterPerformanceTest extends \Doctrine\Tests\OrmFunctionalTestCase
+{
+    protected function setUp()
+    {
+        $this->useModelSet('cms');
+        parent::setUp();
+    }
+
+    public function testFindCmsArticle()
+    {
+        $author = new CmsUser();
+        $author->name = "beberlei";
+        $author->status = "active";
+        $author->username = "beberlei";
+        $this->_em->persist($author);
+
+        $ids = array();
+        for ($i = 0; $i < 100; $i++) {
+            $article = new CmsArticle();
+            $article->text = "foo";
+            $article->topic = "bar";
+            $article->user = $author;
+            $this->_em->persist($article);
+            $ids[] = $article;
+        }
+        $this->_em->flush();
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
+        echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
+
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
+        echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
+
+        $this->_em->clear();
+
+        $start = microtime(true);
+        for ($i = 0; $i < 100; $i++) {
+            $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
+        }
+        echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
+
+        $this->_em->clear();
+
+        $start = microtime(true);
+        for ($i = 0; $i < 100; $i++) {
+            $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
+        }
+        echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
+    }
+
+    public function testFindCmsGroup()
+    {
+        for ($i = 0; $i < 100; $i++) {
+            $group = new CmsGroup();
+            $group->name = "foo" . $i;
+            $this->_em->persist($group);
+        }
+        $this->_em->flush();
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
+        echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
+
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
+        echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
+    }
+
+    public function testFindCmsUser()
+    {
+        for ($i = 0; $i < 100; $i++) {
+            $user = new CmsUser();
+            $user->name = "beberlei";
+            $user->status = "active";
+            $user->username = "beberlei".$i;
+            $this->_em->persist($user);
+        }
+
+        $this->_em->flush();
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
+        echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";
+
+        $this->_em->clear();
+
+        $start = microtime(true);
+        $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
+        echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";
+    }
+}
+
+
+