PageRenderTime 40ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/Zend/Filter/NullTest.php

https://github.com/mfairchild365/zf2
PHP | 329 lines | 197 code | 24 blank | 108 comment | 0 complexity | 99e9e7d1eb0030cdea132e9f2b1f3d7a MD5 | raw file
  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_Filter
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. */
  21. namespace ZendTest\Filter;
  22. use Zend\Filter\Null as NullFilter;
  23. /**
  24. * @category Zend
  25. * @package Zend_Filter
  26. * @subpackage UnitTests
  27. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  28. * @license http://framework.zend.com/license/new-bsd New BSD License
  29. * @group Zend_Filter
  30. */
  31. class NullTest extends \PHPUnit_Framework_TestCase
  32. {
  33. /**
  34. * Zend_Filter_Null object
  35. *
  36. * @var Zend_Filter_Null
  37. */
  38. protected $_filter;
  39. /**
  40. * Creates a new Zend_Filter_Null object for each test method
  41. *
  42. * @return void
  43. */
  44. public function setUp()
  45. {
  46. $this->_filter = new NullFilter();
  47. }
  48. /**
  49. * Ensures that the filter follows expected behavior
  50. *
  51. * @return void
  52. */
  53. public function testBasic()
  54. {
  55. $filter = $this->_filter;
  56. $this->assertEquals(null, $filter(0.0));
  57. $this->assertEquals(null, $filter('0'));
  58. $this->assertEquals(null, $filter(''));
  59. $this->assertEquals(null, $filter(0));
  60. $this->assertEquals(null, $filter(array()));
  61. $this->assertEquals(null, $filter(false));
  62. $this->assertEquals('test', $filter('test'));
  63. $this->assertEquals(true, $filter(true));
  64. }
  65. /**
  66. * Ensures that the filter follows expected behavior
  67. *
  68. * @return void
  69. */
  70. public function testOnlyBoolean()
  71. {
  72. $filter = $this->_filter;
  73. $filter->setType(NullFilter::BOOLEAN);
  74. $this->assertEquals(0.0, $filter(0.0));
  75. $this->assertEquals('0', $filter('0'));
  76. $this->assertEquals('', $filter(''));
  77. $this->assertEquals(0, $filter(0));
  78. $this->assertEquals(array(), $filter(array()));
  79. $this->assertEquals(null, $filter(false));
  80. $this->assertEquals('test', $filter('test'));
  81. $this->assertEquals(true, $filter(true));
  82. }
  83. /**
  84. * Ensures that the filter follows expected behavior
  85. *
  86. * @return void
  87. */
  88. public function testOnlyInteger()
  89. {
  90. $filter = $this->_filter;
  91. $filter->setType(NullFilter::INTEGER);
  92. $this->assertEquals(0.0, $filter(0.0));
  93. $this->assertEquals('0', $filter('0'));
  94. $this->assertEquals('', $filter(''));
  95. $this->assertEquals(null, $filter(0));
  96. $this->assertEquals(array(), $filter(array()));
  97. $this->assertEquals(false, $filter(false));
  98. $this->assertEquals('test', $filter('test'));
  99. $this->assertEquals(true, $filter(true));
  100. }
  101. /**
  102. * Ensures that the filter follows expected behavior
  103. *
  104. * @return void
  105. */
  106. public function testOnlyArray()
  107. {
  108. $filter = $this->_filter;
  109. $filter->setType(NullFilter::EMPTY_ARRAY);
  110. $this->assertEquals(0.0, $filter(0.0));
  111. $this->assertEquals('0', $filter('0'));
  112. $this->assertEquals('', $filter(''));
  113. $this->assertEquals(0, $filter(0));
  114. $this->assertEquals(null, $filter(array()));
  115. $this->assertEquals(false, $filter(false));
  116. $this->assertEquals('test', $filter('test'));
  117. $this->assertEquals(true, $filter(true));
  118. }
  119. /**
  120. * Ensures that the filter follows expected behavior
  121. *
  122. * @return void
  123. */
  124. public function testOnlyString()
  125. {
  126. $filter = $this->_filter;
  127. $filter->setType(NullFilter::STRING);
  128. $this->assertEquals(0.0, $filter(0.0));
  129. $this->assertEquals('0', $filter('0'));
  130. $this->assertEquals(null, $filter(''));
  131. $this->assertEquals(0, $filter(0));
  132. $this->assertEquals(array(), $filter(array()));
  133. $this->assertEquals(false, $filter(false));
  134. $this->assertEquals('test', $filter('test'));
  135. $this->assertEquals(true, $filter(true));
  136. }
  137. /**
  138. * Ensures that the filter follows expected behavior
  139. *
  140. * @return void
  141. */
  142. public function testOnlyZero()
  143. {
  144. $filter = $this->_filter;
  145. $filter->setType(NullFilter::ZERO);
  146. $this->assertEquals(0.0, $filter(0.0));
  147. $this->assertEquals(null, $filter('0'));
  148. $this->assertEquals('', $filter(''));
  149. $this->assertEquals(0, $filter(0));
  150. $this->assertEquals(array(), $filter(array()));
  151. $this->assertEquals(false, $filter(false));
  152. $this->assertEquals('test', $filter('test'));
  153. $this->assertEquals(true, $filter(true));
  154. }
  155. /**
  156. * Ensures that the filter follows expected behavior
  157. *
  158. * @return void
  159. */
  160. public function testArrayConstantNotation()
  161. {
  162. $filter = new NullFilter(
  163. array(
  164. NullFilter::ZERO,
  165. NullFilter::STRING,
  166. NullFilter::BOOLEAN,
  167. )
  168. );
  169. $this->assertEquals(0.0, $filter(0.0));
  170. $this->assertEquals(null, $filter('0'));
  171. $this->assertEquals(null, $filter(''));
  172. $this->assertEquals(0, $filter(0));
  173. $this->assertEquals(array(), $filter(array()));
  174. $this->assertEquals(null, $filter(false));
  175. $this->assertEquals('test', $filter('test'));
  176. $this->assertEquals(true, $filter(true));
  177. }
  178. /**
  179. * Ensures that the filter follows expected behavior
  180. *
  181. * @return void
  182. */
  183. public function testArrayConfigNotation()
  184. {
  185. $filter = new NullFilter(
  186. array(
  187. 'type' => array(
  188. NullFilter::ZERO,
  189. NullFilter::STRING,
  190. NullFilter::BOOLEAN),
  191. 'test' => false
  192. )
  193. );
  194. $this->assertEquals(0.0, $filter(0.0));
  195. $this->assertEquals(null, $filter('0'));
  196. $this->assertEquals(null, $filter(''));
  197. $this->assertEquals(0, $filter(0));
  198. $this->assertEquals(array(), $filter(array()));
  199. $this->assertEquals(null, $filter(false));
  200. $this->assertEquals('test', $filter('test'));
  201. $this->assertEquals(true, $filter(true));
  202. }
  203. /**
  204. * Ensures that the filter follows expected behavior
  205. *
  206. * @return void
  207. */
  208. public function testMultiConstantNotation()
  209. {
  210. $filter = new NullFilter(
  211. NullFilter::ZERO + NullFilter::STRING + NullFilter::BOOLEAN
  212. );
  213. $this->assertEquals(0.0, $filter(0.0));
  214. $this->assertEquals(null, $filter('0'));
  215. $this->assertEquals(null, $filter(''));
  216. $this->assertEquals(0, $filter(0));
  217. $this->assertEquals(array(), $filter(array()));
  218. $this->assertEquals(null, $filter(false));
  219. $this->assertEquals('test', $filter('test'));
  220. $this->assertEquals(true, $filter(true));
  221. }
  222. /**
  223. * Ensures that the filter follows expected behavior
  224. *
  225. * @return void
  226. */
  227. public function testStringNotation()
  228. {
  229. $filter = new NullFilter(
  230. array(
  231. 'zero', 'string', 'boolean'
  232. )
  233. );
  234. $this->assertEquals(0.0, $filter(0.0));
  235. $this->assertEquals(null, $filter('0'));
  236. $this->assertEquals(null, $filter(''));
  237. $this->assertEquals(0, $filter(0));
  238. $this->assertEquals(array(), $filter(array()));
  239. $this->assertEquals(null, $filter(false));
  240. $this->assertEquals('test', $filter('test'));
  241. $this->assertEquals(true, $filter(true));
  242. }
  243. /**
  244. * Ensures that the filter follows expected behavior
  245. *
  246. * @return void
  247. */
  248. public function testSingleStringNotation()
  249. {
  250. $filter = new NullFilter(
  251. 'boolean'
  252. );
  253. $this->assertEquals(0.0, $filter(0.0));
  254. $this->assertEquals('0', $filter('0'));
  255. $this->assertEquals(null, $filter(''));
  256. $this->assertEquals(0, $filter(0));
  257. $this->assertEquals(array(), $filter(array()));
  258. $this->assertEquals(false, $filter(false));
  259. $this->assertEquals('test', $filter('test'));
  260. $this->assertEquals(true, $filter(true));
  261. }
  262. /**
  263. * Ensures that the filter follows expected behavior
  264. *
  265. * @return void
  266. */
  267. public function testSettingFalseType()
  268. {
  269. $this->setExpectedException('\Zend\Filter\Exception\InvalidArgumentException', 'Unknown');
  270. $this->_filter->setType(true);
  271. }
  272. /**
  273. * Ensures that the filter follows expected behavior
  274. *
  275. * @return void
  276. */
  277. public function testGetType()
  278. {
  279. $this->assertEquals(63, $this->_filter->getType());
  280. }
  281. /**
  282. * @group ZF-10388
  283. */
  284. public function testDataTypeFloat()
  285. {
  286. $filter = $this->_filter;
  287. $this->assertEquals(null, $filter(0.0));
  288. }
  289. /**
  290. * @group ZF-10388
  291. */
  292. public function testOnlyFloat()
  293. {
  294. $filter = $this->_filter;
  295. $filter->setType(NullFilter::FLOAT);
  296. $this->assertEquals(null, $filter(0.0));
  297. $this->assertEquals('0', $filter('0'));
  298. $this->assertEquals('', $filter(''));
  299. $this->assertEquals(0, $filter(0));
  300. $this->assertEquals(array(), $filter(array()));
  301. $this->assertEquals(false, $filter(false));
  302. $this->assertEquals('test', $filter('test'));
  303. $this->assertEquals(true, $filter(true));
  304. }
  305. }