2
0

InArrayTest.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Validate
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. /**
  23. * Test helper
  24. */
  25. require_once dirname(__FILE__) . '/../../TestHelper.php';
  26. /**
  27. * @see Zend_Validate_InArray
  28. */
  29. require_once 'Zend/Validate/InArray.php';
  30. /**
  31. * @category Zend
  32. * @package Zend_Validate
  33. * @subpackage UnitTests
  34. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  35. * @license http://framework.zend.com/license/new-bsd New BSD License
  36. * @group Zend_Validate
  37. */
  38. class Zend_Validate_InArrayTest extends PHPUnit_Framework_TestCase
  39. {
  40. /**
  41. * Ensures that the validator follows expected behavior
  42. *
  43. * @return void
  44. */
  45. public function testBasic()
  46. {
  47. $validator = new Zend_Validate_InArray(array(1, 'a', 2.3));
  48. $this->assertTrue($validator->isValid(1));
  49. $this->assertTrue($validator->isValid(1.0));
  50. $this->assertTrue($validator->isValid('1'));
  51. $this->assertTrue($validator->isValid('a'));
  52. $this->assertFalse($validator->isValid('A'));
  53. $this->assertTrue($validator->isValid(2.3));
  54. $this->assertTrue($validator->isValid(2.3e0));
  55. }
  56. /**
  57. * Ensures that getMessages() returns expected default value
  58. *
  59. * @return void
  60. */
  61. public function testGetMessages()
  62. {
  63. $validator = new Zend_Validate_InArray(array(1, 2, 3));
  64. $this->assertEquals(array(), $validator->getMessages());
  65. }
  66. /**
  67. * Ensures that getHaystack() returns expected value
  68. *
  69. * @return void
  70. */
  71. public function testGetHaystack()
  72. {
  73. $validator = new Zend_Validate_InArray(array(1, 2, 3));
  74. $this->assertEquals(array(1, 2, 3), $validator->getHaystack());
  75. }
  76. /**
  77. * Ensures that getStrict() returns expected default value
  78. *
  79. * @return void
  80. */
  81. public function testGetStrict()
  82. {
  83. $validator = new Zend_Validate_InArray(array(1, 2, 3));
  84. $this->assertFalse($validator->getStrict());
  85. }
  86. public function testGivingOptionsAsArrayAtInitiation()
  87. {
  88. $validator = new Zend_Validate_InArray(
  89. array('haystack' =>
  90. array(1, 'a', 2.3)
  91. )
  92. );
  93. $this->assertTrue($validator->isValid(1));
  94. $this->assertTrue($validator->isValid(1.0));
  95. $this->assertTrue($validator->isValid('1'));
  96. $this->assertTrue($validator->isValid('a'));
  97. $this->assertFalse($validator->isValid('A'));
  98. $this->assertTrue($validator->isValid(2.3));
  99. $this->assertTrue($validator->isValid(2.3e0));
  100. }
  101. public function testSettingANewHaystack()
  102. {
  103. $validator = new Zend_Validate_InArray(
  104. array('haystack' =>
  105. array('test', 0, 'A')
  106. )
  107. );
  108. $this->assertTrue($validator->isValid('A'));
  109. $validator->setHaystack(array(1, 'a', 2.3));
  110. $this->assertTrue($validator->isValid(1));
  111. $this->assertTrue($validator->isValid(1.0));
  112. $this->assertTrue($validator->isValid('1'));
  113. $this->assertTrue($validator->isValid('a'));
  114. $this->assertFalse($validator->isValid('A'));
  115. $this->assertTrue($validator->isValid(2.3));
  116. $this->assertTrue($validator->isValid(2.3e0));
  117. }
  118. public function testSettingNewStrictMode()
  119. {
  120. $validator = new Zend_Validate_InArray(array(1, 2, 3));
  121. $this->assertFalse($validator->getStrict());
  122. $this->assertTrue($validator->isValid('1'));
  123. $this->assertTrue($validator->isValid(1));
  124. $validator->setStrict(true);
  125. $this->assertTrue($validator->getStrict());
  126. $this->assertFalse($validator->isValid('1'));
  127. $this->assertTrue($validator->isValid(1));
  128. }
  129. public function testSettingStrictViaInitiation()
  130. {
  131. $validator = new Zend_Validate_InArray(
  132. array(
  133. 'haystack' => array('test', 0, 'A'),
  134. 'strict' => true
  135. )
  136. );
  137. $this->assertTrue($validator->getStrict());
  138. }
  139. public function testGettingRecursiveOption()
  140. {
  141. $validator = new Zend_Validate_InArray(array(1, 2, 3));
  142. $this->assertFalse($validator->getRecursive());
  143. $validator->setRecursive(true);
  144. $this->assertTrue($validator->getRecursive());
  145. }
  146. public function testSettingRecursiveViaInitiation()
  147. {
  148. $validator = new Zend_Validate_InArray(
  149. array(
  150. 'haystack' => array('test', 0, 'A'),
  151. 'recursive' => true
  152. )
  153. );
  154. $this->assertTrue($validator->getRecursive());
  155. }
  156. public function testRecursiveDetection()
  157. {
  158. $validator = new Zend_Validate_InArray(
  159. array(
  160. 'haystack' =>
  161. array(
  162. 'firstDimension' => array('test', 0, 'A'),
  163. 'secondDimension' => array('value', 2, 'a')),
  164. 'recursive' => false
  165. )
  166. );
  167. $this->assertFalse($validator->isValid('A'));
  168. $validator->setRecursive(true);
  169. $this->assertTrue($validator->isValid('A'));
  170. }
  171. public function testRecursiveStandalone()
  172. {
  173. $validator = new Zend_Validate_InArray(
  174. array(
  175. 'firstDimension' => array('test', 0, 'A'),
  176. 'secondDimension' => array('value', 2, 'a')
  177. )
  178. );
  179. $this->assertFalse($validator->isValid('A'));
  180. $validator->setRecursive(true);
  181. $this->assertTrue($validator->isValid('A'));
  182. }
  183. }