set.test.php

来自「Cake Framwork , Excellent」· PHP 代码 · 共 1,605 行 · 第 1/5 页

PHP
1,605
字号
		'string' => 1,		'another' => 'string',		'some' => 'thing else',		'Array2' => array(				0 => array('Array2Data1' => 1, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				1 => array('Array2Data1' => 2, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				2 => array('Array2Data1' => 3, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				3 => array('Array2Data1' => 4, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				4 => array('Array2Data1' => 5, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4')),		'Array3' => array(				0 => array('Array3Data1' => 1, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				1 => array('Array3Data1' => 2, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				2 => array('Array3Data1' => 3, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				3 => array('Array3Data1' => 4, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				4 => array('Array3Data1' => 5, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4')));		$map = Set::map($expected, true);		$result = Set::reverse($map);		$this->assertIdentical($result, $expected);		$expected = array(		'Array1' => array(				'Array1Data1' => 'Array1Data1 value 1', 'Array1Data2' => 'Array1Data2 value 2', 'Array1Data3' => 'Array1Data3 value 3','Array1Data4' => 'Array1Data4 value 4',				'Array1Data5' => 'Array1Data5 value 5', 'Array1Data6' => 'Array1Data6 value 6', 'Array1Data7' => 'Array1Data7 value 7', 'Array1Data8' => 'Array1Data8 value 8'),		'string' => 1,		'another' => 'string',		'some' => 'thing else',		'Array2' => array(				0 => array('Array2Data1' => 1, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				1 => array('Array2Data1' => 2, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				2 => array('Array2Data1' => 3, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				3 => array('Array2Data1' => 4, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'),				4 => array('Array2Data1' => 5, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4')),		'string2' => 1,		'another2' => 'string',		'some2' => 'thing else',		'Array3' => array(				0 => array('Array3Data1' => 1, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				1 => array('Array3Data1' => 2, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				2 => array('Array3Data1' => 3, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				3 => array('Array3Data1' => 4, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'),				4 => array('Array3Data1' => 5, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4')),		'string3' => 1,		'another3' => 'string',		'some3' => 'thing else');		$map = Set::map($expected, true);		$result = Set::reverse($map);		$this->assertIdentical($result, $expected);		$expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851)));		$map = Set::map($expected);		$result = Set::reverse($map);		$this->assertIdentical($result, $expected);		$expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851)));		$class = new stdClass;		$class->User = new stdClass;		$class->User->psword = 'whatever';		$class->User->Icon = new stdClass;		$class->User->Icon->id = 851;		$result = Set::reverse($class);		$this->assertIdentical($result, $expected);		$expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851), 'Profile' => array('name' => 'Some Name', 'address' => 'Some Address')));		$class = new stdClass;		$class->User = new stdClass;		$class->User->psword = 'whatever';		$class->User->Icon = new stdClass;		$class->User->Icon->id = 851;		$class->User->Profile = new stdClass;		$class->User->Profile->name = 'Some Name';		$class->User->Profile->address = 'Some Address';		$result = Set::reverse($class);		$this->assertIdentical($result, $expected);		$expected = array('User' => array('psword'=> 'whatever',						'Icon' => array('id'=> 851),						'Profile' => array('name' => 'Some Name', 'address' => 'Some Address'),						'Comment' => array(								array('id' => 1, 'article_id' => 1, 'user_id' => 1, 'comment' => 'First Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'),								array('id' => 2, 'article_id' => 1, 'user_id' => 2, 'comment' => 'Second Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'))));		$class = new stdClass;		$class->User = new stdClass;		$class->User->psword = 'whatever';		$class->User->Icon = new stdClass;		$class->User->Icon->id = 851;		$class->User->Profile = new stdClass;		$class->User->Profile->name = 'Some Name';		$class->User->Profile->address = 'Some Address';		$class->User->Comment = new stdClass;		$class->User->Comment->{'0'} = new stdClass;		$class->User->Comment->{'0'}->id = 1;		$class->User->Comment->{'0'}->article_id = 1;		$class->User->Comment->{'0'}->user_id = 1;		$class->User->Comment->{'0'}->comment = 'First Comment for First Article';		$class->User->Comment->{'0'}->published = 'Y';		$class->User->Comment->{'0'}->created = '2007-03-18 10:47:23';		$class->User->Comment->{'0'}->updated = '2007-03-18 10:49:31';		$class->User->Comment->{'1'} = new stdClass;		$class->User->Comment->{'1'}->id = 2;		$class->User->Comment->{'1'}->article_id = 1;		$class->User->Comment->{'1'}->user_id = 2;		$class->User->Comment->{'1'}->comment = 'Second Comment for First Article';		$class->User->Comment->{'1'}->published = 'Y';		$class->User->Comment->{'1'}->created = '2007-03-18 10:47:23';		$class->User->Comment->{'1'}->updated = '2007-03-18 10:49:31';		$result = Set::reverse($class);		$this->assertIdentical($result, $expected);		$expected = array('User' => array('psword'=> 'whatever',						'Icon' => array('id'=> 851),						'Profile' => array('name' => 'Some Name', 'address' => 'Some Address'),						'Comment' => array(								array('id' => 1, 'article_id' => 1, 'user_id' => 1, 'comment' => 'First Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'),								array('id' => 2, 'article_id' => 1, 'user_id' => 2, 'comment' => 'Second Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'))));		$class = new stdClass;		$class->User = new stdClass;		$class->User->psword = 'whatever';		$class->User->Icon = new stdClass;		$class->User->Icon->id = 851;		$class->User->Profile = new stdClass;		$class->User->Profile->name = 'Some Name';		$class->User->Profile->address = 'Some Address';		$class->User->Comment = array();		$comment = new stdClass;		$comment->id = 1;		$comment->article_id = 1;		$comment->user_id = 1;		$comment->comment = 'First Comment for First Article';		$comment->published = 'Y';		$comment->created = '2007-03-18 10:47:23';		$comment->updated = '2007-03-18 10:49:31';		$comment2 = new stdClass;		$comment2->id = 2;		$comment2->article_id = 1;		$comment2->user_id = 2;		$comment2->comment = 'Second Comment for First Article';		$comment2->published = 'Y';		$comment2->created = '2007-03-18 10:47:23';		$comment2->updated = '2007-03-18 10:49:31';		$class->User->Comment =  array($comment, $comment2);		$result = Set::reverse($class);		$this->assertIdentical($result, $expected);		uses('model'.DS.'model');		$model = new Model(array('id' => false, 'name' => 'Model', 'table' => false));		$expected = array(			'Behaviors' => array('modelName' => 'Model', '_attached' => array(), '_disabled' => array(), '__methods' => array(), '__mappedMethods' => array(), '_log' => null),			'useDbConfig' => 'default', 'useTable' => false, 'displayField' => null, 'id' => false, 'data' => array(), 'table' => false, 'primaryKey' => 'id', '_schema' => null, 'validate' => array(),			'validationErrors' => array(), 'tablePrefix' => null, 'name' => 'Model', 'alias' => 'Model', 'tableToModel' => array(), 'logTransactions' => false, 'transactional' => false, 'cacheQueries' => false,			'belongsTo' => array(), 'hasOne' =>  array(), 'hasMany' =>  array(), 'hasAndBelongsToMany' =>  array(), 'actsAs' => null, 'whitelist' =>  array(), 'cacheSources' => true,			'findQueryType' => null, 'recursive' => 1, 'order' => null, '__exists' => null,			'__associationKeys' => array(				'belongsTo' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'counterCache'),				'hasOne' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'dependent'),				'hasMany' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'dependent', 'exclusive', 'finderQuery', 'counterQuery'),				'hasAndBelongsToMany' => array('className', 'joinTable', 'with', 'foreignKey', 'associationForeignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'unique', 'finderQuery', 'deleteQuery', 'insertQuery')),			'__associations' => array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'), '__backAssociation' => array(), '__insertID' => null, '__numRows' => null, '__affectedRows' => null,				'__findMethods' => array('all' => true, 'first' => true, 'count' => true, 'neighbors' => true, 'list' => true), '_log' => null);		$result = Set::reverse($model);		ksort($result);		ksort($expected);		$this->assertIdentical($result, $expected);		$class = new stdClass;		$class->User = new stdClass;		$class->User->id = 100;		$class->someString = 'this is some string';		$class->Profile = new stdClass;		$class->Profile->name = 'Joe Mamma';		$result = Set::reverse($class);		$expected = array('User' => array('id' => '100'), 'someString'=> 'this is some string', 'Profile' => array('name' => 'Joe Mamma'));		$this->assertEqual($result, $expected);	}/** * testFormatting method *  * @access public * @return void */	function testFormatting() {		$data = array(			array('Person' => array('first_name' => 'Nate', 'last_name' => 'Abele', 'city' => 'Boston', 'state' => 'MA', 'something' => '42')),			array('Person' => array('first_name' => 'Larry', 'last_name' => 'Masters', 'city' => 'Boondock', 'state' => 'TN', 'something' => '{0}')),			array('Person' => array('first_name' => 'Garrett', 'last_name' => 'Woodworth', 'city' => 'Venice Beach', 'state' => 'CA', 'something' => '{1}')));		$result = Set::format($data, '{1}, {0}', array('{n}.Person.first_name', '{n}.Person.last_name'));		$expected = array('Abele, Nate', 'Masters, Larry', 'Woodworth, Garrett');		$this->assertEqual($result, $expected);		$result = Set::format($data, '{0}, {1}', array('{n}.Person.last_name', '{n}.Person.first_name'));		$this->assertEqual($result, $expected);		$result = Set::format($data, '{0}, {1}', array('{n}.Person.city', '{n}.Person.state'));		$expected = array('Boston, MA', 'Boondock, TN', 'Venice Beach, CA');		$this->assertEqual($result, $expected);		$result = Set::format($data, '{{0}, {1}}', array('{n}.Person.city', '{n}.Person.state'));		$expected = array('{Boston, MA}', '{Boondock, TN}', '{Venice Beach, CA}');		$this->assertEqual($result, $expected);		$result = Set::format($data, '{{0}, {1}}', array('{n}.Person.something', '{n}.Person.something'));		$expected = array('{42, 42}', '{{0}, {0}}', '{{1}, {1}}');		$this->assertEqual($result, $expected);		$result = Set::format($data, '{%2$d, %1$s}', array('{n}.Person.something', '{n}.Person.something'));		$expected = array('{42, 42}', '{0, {0}}', '{0, {1}}');		$this->assertEqual($result, $expected);		$result = Set::format($data, '{%1$s, %1$s}', array('{n}.Person.something', '{n}.Person.something'));		$expected = array('{42, 42}', '{{0}, {0}}', '{{1}, {1}}');		$this->assertEqual($result, $expected);		$result = Set::format($data, '%2$d, %1$s', array('{n}.Person.first_name', '{n}.Person.something'));		$expected = array('42, Nate', '0, Larry', '0, Garrett');		$this->assertEqual($result, $expected);		$result = Set::format($data, '%1$s, %2$d', array('{n}.Person.first_name', '{n}.Person.something'));		$expected = array('Nate, 42', 'Larry, 0', 'Garrett, 0');		$this->assertEqual($result, $expected);	}/** * testCountDim method *  * @access public * @return void */	function testCountDim() {		$data = array('one', '2', 'three');		$result = Set::countDim($data);		$this->assertEqual($result, 1);		$data = array('1' => '1.1', '2', '3');		$result = Set::countDim($data);		$this->assertEqual($result, 1);		$data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => '3.1.1'));		$result = Set::countDim($data);		$this->assertEqual($result, 2);		$data = array('1' => '1.1', '2', '3' => array('3.1' => '3.1.1'));		$result = Set::countDim($data);		$this->assertEqual($result, 1);		$data = array('1' => '1.1', '2', '3' => array('3.1' => '3.1.1'));		$result = Set::countDim($data, true);		$this->assertEqual($result, 2);		$data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => array('3.1.1' => '3.1.1.1')));		$result = Set::countDim($data);		$this->assertEqual($result, 2);		$data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => array('3.1.1' => '3.1.1.1')));		$result = Set::countDim($data, true);		$this->assertEqual($result, 3);		$data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => '2.1.1.1'))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1')));		$result = Set::countDim($data, true);		$this->assertEqual($result, 4);		$data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => array('2.1.1.1')))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1')));		$result = Set::countDim($data, true);		$this->assertEqual($result, 5);		$data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => array('2.1.1.1' => '2.1.1.1.1')))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1')));		$result = Set::countDim($data, true);		$this->assertEqual($result, 5);	}/** * testMapNesting method *  * @access public * @return void */	function testMapNesting() {		$expected = array(			array(				"IndexedPage" => array(					"id" => 1,					"url" => 'http://blah.com/',					'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5',					'headers' => array(							'Date' => "Wed, 14 Nov 2007 15:51:42 GMT",							'Server' => "Apache",							'Expires' => "Thu, 19 Nov 1981 08:52:00 GMT",							'Cache-Control' => "private",							'Pragma' => "no-cache",							'Content-Type' => "text/html; charset=UTF-8",							'X-Original-Transfer-Encoding' => "chunked",							'Content-Length' => "50210",					),					'meta' => array(							'keywords' => array('testing','tests'),							'description'=>'describe me',					),					'get_vars' => '',					'post_vars' => array(),					'cookies' => array('PHPSESSID' => "dde9896ad24595998161ffaf9e0dbe2d"),					'redirect' => '',					'created' => "1195055503",					'updated' => "1195055503",				)			),			array(				"IndexedPage" => array(					"id" => 2,					"url" => 'http://blah.com/',					'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5',					'headers' => array(						'Date' => "Wed, 14 Nov 2007 15:51:42 GMT",						'Server' => "Apache",						'Expires' => "Thu, 19 Nov 1981 08:52:00 GMT",						'Cache-Control' => "private",						'Pragma' => "no-cache",						'Content-Type' => "text/html; charset=UTF-8",

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?