PageRenderTime 53ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/zendframework/zendframework/tests/ZendTest/Filter/NullTest.php

https://bitbucket.org/pcelta/zf2
PHP | 294 lines | 251 code | 14 blank | 29 comment | 0 complexity | 85714caa026494815116b99f80e3a6e0 MD5 | raw file
  1. <?php
  2. /**
  3. * Zend Framework (http://framework.zend.com/)
  4. *
  5. * @link http://github.com/zendframework/zf2 for the canonical source repository
  6. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  7. * @license http://framework.zend.com/license/new-bsd New BSD License
  8. * @package Zend_Filter
  9. */
  10. namespace ZendTest\Filter;
  11. use Zend\Filter\Null as NullFilter;
  12. /**
  13. * @category Zend
  14. * @package Zend_Filter
  15. * @subpackage UnitTests
  16. * @group Zend_Filter
  17. */
  18. class NullTest extends \PHPUnit_Framework_TestCase
  19. {
  20. public function testConstructorOptions()
  21. {
  22. $filter = new NullFilter(array(
  23. 'type' => NullFilter::TYPE_INTEGER,
  24. ));
  25. $this->assertEquals(NullFilter::TYPE_INTEGER, $filter->getType());
  26. }
  27. public function testConstructorParams()
  28. {
  29. $filter = new NullFilter(NullFilter::TYPE_INTEGER);
  30. $this->assertEquals(NullFilter::TYPE_INTEGER, $filter->getType());
  31. }
  32. /**
  33. * @param mixed $value
  34. * @param bool $expected
  35. * @dataProvider defaultTestProvider
  36. */
  37. public function testDefault($value, $expected)
  38. {
  39. $filter = new NullFilter();
  40. $this->assertSame($expected, $filter->filter($value));
  41. }
  42. /**
  43. * @param int $type
  44. * @param array $testData
  45. * @dataProvider typeTestProvider
  46. */
  47. public function testTypes($type, $testData)
  48. {
  49. $filter = new NullFilter($type);
  50. foreach ($testData as $data) {
  51. list($value, $expected) = $data;
  52. $message = sprintf(
  53. '%s (%s) is not filtered as %s; type = %s',
  54. var_export($value, true),
  55. gettype($value),
  56. var_export($expected, true),
  57. $type
  58. );
  59. $this->assertSame($expected, $filter->filter($value), $message);
  60. }
  61. }
  62. /**
  63. * @param array $typeData
  64. * @param array $testData
  65. * @dataProvider combinedTypeTestProvider
  66. */
  67. public function testCombinedTypes($typeData, $testData)
  68. {
  69. foreach ($typeData as $type) {
  70. $filter = new NullFilter(array('type' => $type));
  71. foreach ($testData as $data) {
  72. list($value, $expected) = $data;
  73. $message = sprintf(
  74. '%s (%s) is not filtered as %s; type = %s',
  75. var_export($value, true),
  76. gettype($value),
  77. var_export($expected, true),
  78. var_export($type, true)
  79. );
  80. $this->assertSame($expected, $filter->filter($value), $message);
  81. }
  82. }
  83. }
  84. public function testSettingFalseType()
  85. {
  86. $filter = new NullFilter();
  87. $this->setExpectedException('\Zend\Filter\Exception\InvalidArgumentException', 'Unknown type value');
  88. $filter->setType(true);
  89. }
  90. public function testGettingDefaultType()
  91. {
  92. $filter = new NullFilter();
  93. $this->assertEquals(63, $filter->getType());
  94. }
  95. public static function defaultTestProvider()
  96. {
  97. return array(
  98. array(null, null),
  99. array(false, null),
  100. array(true, true),
  101. array(0, null),
  102. array(1, 1),
  103. array(0.0, null),
  104. array(1.0, 1.0),
  105. array('', null),
  106. array('abc', 'abc'),
  107. array('0', null),
  108. array('1', '1'),
  109. array(array(), null),
  110. array(array(0), array(0)),
  111. );
  112. }
  113. public static function typeTestProvider()
  114. {
  115. return array(
  116. array(
  117. NullFilter::TYPE_BOOLEAN,
  118. array(
  119. array(null, null),
  120. array(false, null),
  121. array(true, true),
  122. array(0, 0),
  123. array(1, 1),
  124. array(0.0, 0.0),
  125. array(1.0, 1.0),
  126. array('', ''),
  127. array('abc', 'abc'),
  128. array('0', '0'),
  129. array('1', '1'),
  130. array(array(), array()),
  131. array(array(0), array(0)),
  132. )
  133. ),
  134. array(
  135. NullFilter::TYPE_INTEGER,
  136. array(
  137. array(null, null),
  138. array(false, false),
  139. array(true, true),
  140. array(0, null),
  141. array(1, 1),
  142. array(0.0, 0.0),
  143. array(1.0, 1.0),
  144. array('', ''),
  145. array('abc', 'abc'),
  146. array('0', '0'),
  147. array('1', '1'),
  148. array(array(), array()),
  149. array(array(0), array(0)),
  150. )
  151. ),
  152. array(
  153. NullFilter::TYPE_EMPTY_ARRAY,
  154. array(
  155. array(null, null),
  156. array(false, false),
  157. array(true, true),
  158. array(0, 0),
  159. array(1, 1),
  160. array(0.0, 0.0),
  161. array(1.0, 1.0),
  162. array('', ''),
  163. array('abc', 'abc'),
  164. array('0', '0'),
  165. array('1', '1'),
  166. array(array(), null),
  167. array(array(0), array(0)),
  168. )
  169. ),
  170. array(
  171. NullFilter::TYPE_STRING,
  172. array(
  173. array(null, null),
  174. array(false, false),
  175. array(true, true),
  176. array(0, 0),
  177. array(1, 1),
  178. array(0.0, 0.0),
  179. array(1.0, 1.0),
  180. array('', null),
  181. array('abc', 'abc'),
  182. array('0', '0'),
  183. array('1', '1'),
  184. array(array(), array()),
  185. array(array(0), array(0)),
  186. )
  187. ),
  188. array(
  189. NullFilter::TYPE_ZERO_STRING,
  190. array(
  191. array(null, null),
  192. array(false, false),
  193. array(true, true),
  194. array(0, 0),
  195. array(1, 1),
  196. array(0.0, 0.0),
  197. array(1.0, 1.0),
  198. array('', ''),
  199. array('abc', 'abc'),
  200. array('0', null),
  201. array('1', '1'),
  202. array(array(), array()),
  203. array(array(0), array(0)),
  204. )
  205. ),
  206. array(
  207. NullFilter::TYPE_FLOAT,
  208. array(
  209. array(null, null),
  210. array(false, false),
  211. array(true, true),
  212. array(0, 0),
  213. array(1, 1),
  214. array(0.0, null),
  215. array(1.0, 1.0),
  216. array('', ''),
  217. array('abc', 'abc'),
  218. array('0', '0'),
  219. array('1', '1'),
  220. array(array(), array()),
  221. array(array(0), array(0)),
  222. )
  223. ),
  224. array(
  225. NullFilter::TYPE_ALL,
  226. array(
  227. array(null, null),
  228. array(false, null),
  229. array(true, true),
  230. array(0, null),
  231. array(1, 1),
  232. array(0.0, null),
  233. array(1.0, 1.0),
  234. array('', null),
  235. array('abc', 'abc'),
  236. array('0', null),
  237. array('1', '1'),
  238. array(array(), null),
  239. array(array(0), array(0)),
  240. )
  241. ),
  242. );
  243. }
  244. public static function combinedTypeTestProvider()
  245. {
  246. return array(
  247. array(
  248. array(
  249. array(
  250. NullFilter::TYPE_ZERO_STRING,
  251. NullFilter::TYPE_STRING,
  252. NullFilter::TYPE_BOOLEAN,
  253. ),
  254. array(
  255. 'zero',
  256. 'string',
  257. 'boolean',
  258. ),
  259. NullFilter::TYPE_ZERO_STRING | NullFilter::TYPE_STRING | NullFilter::TYPE_BOOLEAN,
  260. NullFilter::TYPE_ZERO_STRING + NullFilter::TYPE_STRING + NullFilter::TYPE_BOOLEAN,
  261. ),
  262. array(
  263. array(null, null),
  264. array(false, null),
  265. array(true, true),
  266. array(0, 0),
  267. array(1, 1),
  268. array(0.0, 0.0),
  269. array(1.0, 1.0),
  270. array('', null),
  271. array('abc', 'abc'),
  272. array('0', null),
  273. array('1', '1'),
  274. array(array(), array()),
  275. array(array(0), array(0)),
  276. )
  277. )
  278. );
  279. }
  280. }