X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fgabordemooij%2Fredbean%2Ftesting%2FRedUNIT%2FBase%2FArrays.php;fp=vendor%2Fgabordemooij%2Fredbean%2Ftesting%2FRedUNIT%2FBase%2FArrays.php;h=0000000000000000000000000000000000000000;hp=56303b19b550f86006afcfd12c5067a2fb4374d3;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Arrays.php b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Arrays.php deleted file mode 100644 index 56303b19b..000000000 --- a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Arrays.php +++ /dev/null @@ -1,273 +0,0 @@ -name = 'bean'; - $bean->taste = 'salty'; - $properties = array(); - foreach($bean as $key => $value) { - $properties[ $key ] = $value; - } - asrt( count( $bean ), 3 ); - asrt( count( $properties ), 3 ); - asrt( isset( $properties['id'] ), TRUE ); - asrt( isset( $properties['name'] ), TRUE ); - asrt( isset( $properties['taste'] ), TRUE ); - $bean = R::dispense('bean'); - $bean['name'] = 'bean'; - $bean['taste'] = 'salty'; - $properties = array(); - foreach($bean as $key => $value) { - $properties[ $key ] = $value; - } - asrt( count( $bean ), 3 ); - asrt( count( $properties ), 3 ); - asrt( isset( $properties['id'] ), TRUE ); - asrt( isset( $properties['name'] ), TRUE ); - asrt( isset( $properties['taste'] ), TRUE ); - } - - /** - * Tests array access with lists. - * Tests whether list properties behave as arrays correctly. - * - * @return void - */ - public function testArrayAccessAndLists() - { - $book = R::dispense('book'); - $book['title'] = 'My Book'; - //Can we add a bean in list with array access? - $book['ownPage'][] = R::dispense('page'); - $book['ownPage'][] = R::dispense('page'); - asrt( count( $book ), 3 ); - $properties = array(); - foreach($book as $key => $value) { - $properties[ $key ] = $value; - } - asrt( count( $properties ), 3 ); - //Dont reveal aliased x-own and -List in foreach-loop - asrt( isset( $properties['id'] ), TRUE ); - asrt( isset( $properties['title'] ), TRUE ); - asrt( isset( $properties['ownPage'] ), TRUE ); - asrt( isset( $properties['ownPageList'] ), FALSE ); - asrt( isset( $properties['xownPage'] ), FALSE ); - asrt( isset( $properties['xownPageList'] ), FALSE ); - //But keep them countable - asrt( count( $book['ownPage'] ), 2 ); - asrt( count( $book['ownPageList'] ), 2 ); - asrt( count( $book['xownPage'] ), 2 ); - asrt( count( $book['xownPageList'] ), 2 ); - //And reveal state of items with isset() - asrt( isset( $book['id'] ), TRUE ); - asrt( isset( $book['title'] ), TRUE ); - asrt( isset( $book['ownPage'] ), TRUE ); - asrt( isset( $book['ownPageList'] ), TRUE ); - asrt( isset( $book['xownPage'] ), TRUE ); - asrt( isset( $book['xownPageList'] ), TRUE ); - //Can we add using the List alias? - $book['ownPageList'][] = R::dispense('page'); - asrt( count( $book['ownPage'] ), 3 ); - asrt( count( $book['ownPageList'] ), 3 ); - asrt( count( $book['xownPage'] ), 3 ); - asrt( count( $book['xownPageList'] ), 3 ); - //Can we add using the x-mode alias? - $book['ownPageList'][] = R::dispense('page'); - asrt( count( $book['ownPage'] ), 4 ); - asrt( count( $book['ownPageList'] ), 4 ); - asrt( count( $book['xownPage'] ), 4 ); - asrt( count( $book['xownPageList'] ), 4 ); - //Can we unset using array access? - unset( $book['ownPage'] ); - asrt( isset( $book['ownPage'] ), FALSE ); - asrt( isset( $book['ownPageList'] ), FALSE ); - asrt( isset( $book['xownPage'] ), FALSE ); - asrt( isset( $book['xownPageList'] ), FALSE ); - $book['ownPage'] = array( R::dispense('page') ); - unset( $book['xownPage'] ); - asrt( isset( $book['ownPage'] ), FALSE ); - asrt( isset( $book['ownPageList'] ), FALSE ); - asrt( isset( $book['xownPage'] ), FALSE ); - asrt( isset( $book['xownPageList'] ), FALSE ); - $book['ownPage'] = array( R::dispense('page') ); - unset( $book['ownPageList'] ); - asrt( isset( $book['ownPage'] ), FALSE ); - asrt( isset( $book['ownPageList'] ), FALSE ); - asrt( isset( $book['xownPage'] ), FALSE ); - asrt( isset( $book['xownPageList'] ), FALSE ); - $book['ownPage'] = array( R::dispense('page') ); - unset( $book['xownPageList'] ); - asrt( isset( $book['ownPage'] ), FALSE ); - asrt( isset( $book['ownPageList'] ), FALSE ); - asrt( isset( $book['xownPage'] ), FALSE ); - asrt( isset( $book['xownPageList'] ), FALSE ); - //does it work with shared lists as well? - $book['sharedCategory'] = array( R::dispense('category') ); - asrt( count( $book ), 3 ); - $properties = array(); - foreach($book as $key => $value) { - $properties[ $key ] = $value; - } - asrt( isset( $properties['sharedCategory'] ), TRUE ); - asrt( isset( $properties['sharedCategoryList'] ), FALSE ); - asrt( isset( $book['sharedCategory'] ), TRUE ); - asrt( isset( $book['sharedCategoryList'] ), TRUE ); - asrt( count( $book['sharedCategory'] ), 1 ); - asrt( count( $book['sharedCategoryList'] ), 1 ); - $book['sharedCategory'][] = R::dispense( 'category' ); - asrt( count( $book['sharedCategory'] ), 2 ); - asrt( count( $book['sharedCategoryList'] ), 2 ); - $book['sharedCategoryList'][] = R::dispense( 'category' ); - asrt( count( $book['sharedCategory'] ), 3 ); - asrt( count( $book['sharedCategoryList'] ), 3 ); - } - - /** - * Tests array access with parent beans. - * - * @return void - */ - public function testArrayAccessWithBeans() - { - $book = R::dispense( 'bean' ); - $book['author'] = R::dispense( 'author' ); - asrt( isset( $book['author'] ), TRUE ); - asrt( count( $book ), 2 ); - $book['author']['name'] = 'me'; - asrt( $book['author']['name'], 'me' ); - $book['author']['address'] = R::dispense( 'address' ); - $book['author']['ownTagList'][] = R::dispense( 'tag' ); - asrt( isset( $book['author']['address'] ), TRUE ); - asrt( isset( $book['author']['ownTag'] ), TRUE ); - asrt( count( $book['author']['ownTag'] ), 1 ); - asrt( isset( $book['author']['xownTag'] ), TRUE ); - asrt( count( $book['author']['xownTag'] ), 1 ); - asrt( isset( $book['author']['ownTagList'] ), TRUE ); - asrt( count( $book['author']['ownTagList'] ), 1 ); - asrt( isset( $book['author']['xownTagList'] ), TRUE ); - asrt( count( $book['author']['xownTagList'] ), 1 ); - unset( $book['author'] ); - asrt( isset( $book['author'] ), FALSE ); - asrt( count( $book ), 1 ); - } - - /** - * Tests array access with CRUD operations. - * - * @return void - */ - public function testArrayAccessWithCRUD() - { - R::nuke(); - $book = R::dispense( 'book' ); - $book['ownPageList'] = R::dispense( 'page', 3 ); - R::store( $book ); - $book = $book->fresh(); - //note that isset first returns false, so you can check if a list is loaded - asrt( isset( $book['ownPage'] ), FALSE ); - asrt( isset( $book['ownPageList'] ), FALSE ); - asrt( isset( $book['xownPage'] ), FALSE ); - asrt( isset( $book['xownPageList'] ), FALSE ); - //count triggers load... - asrt( count( $book['ownPage'] ), 3 ); - asrt( isset( $book['ownPage'] ), TRUE ); - asrt( isset( $book['ownPageList'] ), TRUE ); - asrt( isset( $book['xownPage'] ), TRUE ); - asrt( isset( $book['xownPageList'] ), TRUE ); - $book = $book->fresh(); - asrt( count( $book['xownPage'] ), 3 ); - $book = $book->fresh(); - asrt( count( $book['ownPageList'] ), 3 ); - $book = $book->fresh(); - asrt( count( $book['xownPageList'] ), 3 ); - $book['ownPage'][] = R::dispense( 'page' ); - R::store( $book ); - $book = $book->fresh(); - asrt( count( $book['ownPage'] ), 4 ); - $book = $book->fresh(); - asrt( count( $book['xownPage'] ), 4 ); - $book = $book->fresh(); - asrt( count( $book['ownPageList'] ), 4 ); - $book = $book->fresh(); - asrt( count( $book['xownPageList'] ), 4 ); - //does dependency still work? - $book['xownPageList'] = array(); - R::store( $book ); - $book = $book->fresh(); - asrt( count( $book['ownPage'] ), 0 ); - $book = $book->fresh(); - asrt( count( $book['xownPage'] ), 0 ); - $book = $book->fresh(); - asrt( count( $book['ownPageList'] ), 0 ); - $book = $book->fresh(); - asrt( count( $book['xownPageList'] ), 0 ); - //does shared list work as well? - $book['sharedTag'] = R::dispense( 'tag', 2 ); - R::store( $book ); - $book = $book->fresh(); - //note that isset first returns false, so you can check if a list is loaded - asrt( isset( $book['sharedTagList'] ), FALSE ); - asrt( isset( $book['sharedTag'] ), FALSE ); - //count triggers load... - asrt( count( $book['sharedTagList'] ), 2 ); - asrt( count( $book['sharedTag'] ), 2 ); - asrt( isset( $book['sharedTagList'] ), TRUE ); - asrt( isset( $book['sharedTag'] ), TRUE ); - $book['sharedTag'][] = R::dispense( 'tag' ); - R::store( $book ); - $book = $book->fresh(); - asrt( count( $book['sharedTagList'] ), 3 ); - asrt( count( $book['sharedTag'] ), 3 ); - $book['sharedTagList'][] = R::dispense( 'tag' ); - R::store( $book ); - $book = $book->fresh(); - asrt( count( $book['sharedTagList'] ), 4 ); - asrt( count( $book['sharedTag'] ), 4 ); - //does it also work with cross-shared - $book['sharedBookList'][] = R::dispense( 'book' ); - R::store( $book ); - $book = $book->fresh(); - asrt( isset( $book['sharedBookList'] ), FALSE ); - asrt( count( $book['sharedBookList'] ), 1 ); - $first = reset( $book['sharedBookList'] ); - $id = $first['id']; - asrt( count( $book['sharedBookList'][$id]['sharedBookList'] ), 1 ); - $properties = array(); - foreach($book as $key => $value) { - $properties[ $key ] = $value; - } - asrt( count( $properties ), 2 ); - $keys = array_keys( $properties ); - sort( $keys ); - asrt( implode( ',', $keys ), 'id,sharedBook' ); - } -}