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 ); } }