Yaffs site version 1.1
[yaffs-website] / vendor / gabordemooij / redbean / testing / RedUNIT / Base / Performance.php
diff --git a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Performance.php b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Performance.php
new file mode 100644 (file)
index 0000000..58fa332
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+
+namespace RedUNIT\Base;
+
+use RedUNIT\Base as Base;
+use RedBeanPHP\Facade as R;
+use RedBeanPHP\RedException as RedException;
+
+/**
+ * Performance
+ *
+ * This performance test is used with runperf and xdebug profiler.
+ *
+ * @file    RedUNIT/Base/Performance.php
+ * @desc    Performance testing.
+ * @author  Gabor de Mooij and the RedBeanPHP Community
+ * @license New BSD/GPLv2
+ *
+ * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
+ * This source file is subject to the New BSD/GPLv2 License that is bundled
+ * with this source code in the file license.txt.
+ */
+class Performance extends Base
+{
+       /**
+        * Setup
+        *
+        * @return void
+        */
+       public function setup()
+       {
+               R::nuke();
+
+               //Prepare structure
+               $book = R::dispense( 'book' );
+               $book->title = 'book';
+               $pages = R::dispense( 'page', 10 );
+               foreach( $pages as $page ) {
+                       $page->content = 'lorem ipsum';
+                       $page->title = 'data';
+                       $page->sequence = 'data';
+                       $page->order = 'data';
+                       $page->columns = 'data';
+                       $page->paragraphs = 'data';
+                       $page->paragraphs1 = 'data';
+                       $page->paragraphs2 = 'data';
+                       $page->paragraphs3 = 'data';
+                       $page->paragraphs4 = 'data';
+               }
+               $book->xownPageList = $pages;
+               $tags = R::dispense( 'tag', 6 );
+               foreach( $tags as $tag ) {
+                       $tag->label = 'tag';
+               }
+               $book->sharedTagList = $tags;
+               R::store( $book );
+       }
+
+       /**
+        * CRUD performance.
+        *
+        * @return void
+        */
+       public function crud()
+       {
+               R::freeze( TRUE );
+
+               $book = R::dispense( 'book' );
+               $book->title = 'Book';
+               $page = R::dispense('page');
+               $page->content = 'Content';
+               $page->title = 'data';
+               $page->sequence = 'data';
+               $page->order = 'data';
+               $page->columns = 'data';
+               $page->paragraphs = 'data';
+               $page->paragraphs1 = 'data';
+               $page->paragraphs2 = 'data';
+               $page->paragraphs3 = 'data';
+               $page->paragraphs4 = 'data';
+               $tag = R::dispense('tag');
+               $tag->label = 'Tag ';
+               $book->noLoad()->ownPage[] = $page;
+               $book->noLoad()->sharedTag[] = $tag;
+               R::store( $book );
+               $book = $book->fresh();
+               $book->ownPage;
+               $book->sharedTag;
+               R::trash( $book );
+
+       }
+
+       /**
+        * CRUD performance Array Access.
+        *
+        * @return void
+        */
+       public function crudaa()
+       {
+               R::freeze( TRUE );
+
+               $book = R::dispense( 'book' );
+               $book['title'] = 'Book';
+               $page = R::dispense('page');
+               $page['content'] = 'Content';
+               $page['title'] = 'data';
+               $page['sequence'] = 'data';
+               $page['order'] = 'data';
+               $page['columns'] = 'data';
+               $page['paragraphs'] = 'data';
+               $page['paragraphs1'] = 'data';
+               $page['paragraphs2'] = 'data';
+               $page['paragraphs3'] = 'data';
+               $page['paragraphs4'] = 'data';
+               $tag = R::dispense('tag');
+               $tag['label'] = 'Tag ';
+               $book->ownPage[] = $page;
+               $book->noLoad()->sharedTag[] = $tag;
+               R::store( $book );
+               $book = $book->fresh();
+               $book->ownPage;
+               $book->sharedTag;
+               R::trash( $book );
+
+       }
+}
\ No newline at end of file