X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fgabordemooij%2Fredbean%2Ftesting%2FRedUNIT%2FBase%2FFrozen.php;fp=vendor%2Fgabordemooij%2Fredbean%2Ftesting%2FRedUNIT%2FBase%2FFrozen.php;h=2cf9167c81dcaf367209c58b5e0d666562b898e4;hp=0000000000000000000000000000000000000000;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae diff --git a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Frozen.php b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Frozen.php new file mode 100644 index 000000000..2cf9167c8 --- /dev/null +++ b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Frozen.php @@ -0,0 +1,115 @@ +xownPageList[] = R::dispense( 'page' ); + $book->sharedTagList[] = R::dispense( 'tag' ); + R::store( $book ); + $book = $book->fresh(); + R::freeze( TRUE ); + + $book->xownPageList = array(); + + R::store( $book ); + $book = $book->fresh(); + + asrt( R::count('page'), 0 ); + + $book->xownPageList[] = R::dispense( 'page' ); + + R::store( $book ); + $book = $book->fresh(); + + asrt( R::count('page'), 1 ); + + $book->xownPageList; + $book->sharedTagList; + R::trash( $book ); + + asrt( R::count('book'), 0 ); + asrt( R::count('page'), 0 ); + asrt( R::count('tag'), 1 ); + asrt( R::count('book_tag'), 0 ); + + R::freeze( FALSE ); + } + + /** + * Tests whether invalid list checks are + * operational in frozen mode. + * + * @return void + */ + public function testInvalidList() + { + R::nuke(); + $book = R::dispense( 'book' ); + $book->xownPageList[] = R::dispense( 'page' ); + $book->sharedTagList[] = R::dispense( 'tag' ); + R::store( $book ); + R::freeze( TRUE ); + + $book = R::dispense( 'book' ); + $book->xownPageList[] = 'nonsense'; + try { + R::store( $book ); + fail(); + } catch( \Exception $e ) { + pass(); + } + + R::freeze( FALSE ); + } + + /** + * Tests whether loading non-existant beans + * returns the same results in frozen mode. + * + * @return + */ + public function testLoadNonExistant() + { + R::nuke(); + R::store( R::dispense( 'bean' ) ); + R::freeze( TRUE ); + $bean = R::load( 'bean', 123 ); + R::freeze( FALSE ); + asrt( ( $bean instanceof OODBBean ), TRUE ); + asrt( $bean->id, 0 ); + } +}