PageRenderTime 39ms CodeModel.GetById 10ms RepoModel.GetById 1ms app.codeStats 0ms

/test/Validator/ValidateTest.php

https://bitbucket.org/jonbiard/nucleus
PHP | 229 lines | 218 code | 8 blank | 3 comment | 0 complexity | af3669befa91533851c8270b7d4c5316 MD5 | raw file
  1. <?php
  2. namespace Nucleus\Library\Test\Validator;
  3. use Nucleus\Library\Validator\Validate;
  4. use PHPUnit_Framework_TestCase;
  5. class ValidateTest extends PHPUnit_Framework_TestCase
  6. {
  7. public function setUp()
  8. {
  9. }
  10. /**
  11. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  12. */
  13. public function testAll()
  14. {
  15. $validate = new Validate();
  16. $this->assertTrue($validate->isAgeBetween('01-01-1970', 'd-m-Y', 1, 99));
  17. $this->assertTrue($validate->isAgeMax('01-01-1970', 'd-m-Y', 99));
  18. $this->assertTrue($validate->isAgeMin('01-01-1970', 'd-m-Y', 1));
  19. $this->assertTrue($validate->isAlnum('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'));
  20. $this->assertTrue($validate->isAlpha('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'));
  21. $this->assertTrue($validate->isArray([1, 2, 3]));
  22. $this->assertTrue($validate->isBase64(base64_encode('test')));
  23. $this->assertTrue($validate->isBetween(2, 1, 3));
  24. $this->assertTrue($validate->isBetween(2, 2, 2));
  25. $this->assertTrue($validate->isBlank(''));
  26. $this->assertTrue($validate->isBlank(' '));
  27. $this->assertTrue($validate->isBlank(null));
  28. $this->assertTrue($validate->isBool(true));
  29. $this->assertTrue($validate->isBool('1'));
  30. $this->assertTrue($validate->isBool('on'));
  31. $this->assertTrue($validate->isBool('true'));
  32. $this->assertTrue($validate->isBool('t'));
  33. $this->assertTrue($validate->isBool('yes'));
  34. $this->assertTrue($validate->isBool('y'));
  35. $this->assertTrue($validate->isBool(false));
  36. $this->assertTrue($validate->isBool('0'));
  37. $this->assertTrue($validate->isBool('off'));
  38. $this->assertTrue($validate->isBool('false'));
  39. $this->assertTrue($validate->isBool('f'));
  40. $this->assertTrue($validate->isBool('no'));
  41. $this->assertTrue($validate->isBool('n'));
  42. $this->assertTrue($validate->isCreditCard('5514689104747025'));
  43. $this->assertTrue($validate->isDatetime('01-01-1970', 'd-m-Y'));
  44. $this->assertTrue($validate->isEmail('name@domain.com'));
  45. $this->assertTrue($validate->isEmail('name@domain.co.uk'));
  46. $this->assertTrue($validate->isEqualTo(1, 1));
  47. $this->assertTrue($validate->isEqualTo(1, 1.0));
  48. $this->assertTrue($validate->isEqualTo(1, '1'));
  49. $this->assertTrue($validate->isFloat(1.0));
  50. $this->assertTrue($validate->isFloat(M_PI));
  51. $this->assertTrue($validate->isFloat('3.14159265359'));
  52. $this->assertTrue($validate->isInKeys('a', ['a' => 1, 'b' => 2, 'c' => 3]));
  53. $this->assertTrue($validate->isInt(1));
  54. $this->assertTrue($validate->isInValues(2, ['a' => 1, 'b' => 2, 'c' => 3]));
  55. $this->assertTrue($validate->isIP('184.165.132.11'));
  56. $this->assertTrue($validate->isIP('2001:0db8:85a3:0042:1000:8a2e:0370:7334'));
  57. $this->assertTrue($validate->isIPv4('184.165.132.11'));
  58. $this->assertTrue($validate->isIPv6('2001:0db8:85a3:0042:1000:8a2e:0370:7334'));
  59. $this->assertTrue($validate->isLocale('en_US'));
  60. $this->assertTrue($validate->isLocale('fr_CA'));
  61. $this->assertTrue($validate->isMax(2, 3));
  62. $this->assertTrue($validate->isMax(2, 2));
  63. $this->assertTrue($validate->isMin(2, 1));
  64. $this->assertTrue($validate->isMin(2, 2));
  65. $this->assertTrue($validate->isRegex('abc123def', '~^[^0-9]*123(.*)$~'));
  66. $this->assertTrue($validate->isStrictEqualTo(1, 1));
  67. $this->assertTrue($validate->isString('test'));
  68. $this->assertTrue($validate->isStrlenBetween('12345', 4, 6));
  69. $this->assertTrue($validate->isStrlenBetween('12345', 5, 5));
  70. $this->assertTrue($validate->isStrlenMax('12345', 6));
  71. $this->assertTrue($validate->isStrlenMax('12345', 5));
  72. $this->assertTrue($validate->isStrlenMin('12345', 4));
  73. $this->assertTrue($validate->isStrlenMin('12345', 5));
  74. $this->assertTrue($validate->isStrlen('12345', 5));
  75. $this->assertTrue($validate->isTimezone('America/New_York'));
  76. $this->assertTrue($validate->isTimezone('America/Argentina/Buenos_Aires'));
  77. $this->assertTrue($validate->isTrim('test'));
  78. $this->assertTrue($validate->isTrim('te st'));
  79. $this->assertTrue($validate->isURL('http://www.php.net/manual/en/timezones.america.php'));
  80. $this->assertTrue($validate->isURL('http://ca1.php.net/manual-lookup.php?pattern=test&lang=en&scope=quickref'));
  81. $this->assertTrue($validate->isWord('test'));
  82. $this->assertTrue($validate->notAgeBetween('31-02-1970', 'd-m-Y', 1, 10));
  83. $this->assertTrue($validate->notAgeBetween('01-01-1970', 'd-m-Y', 1, 10));
  84. $this->assertTrue($validate->notAgeMax('01-01-1970', 'd-m-Y', 1));
  85. $this->assertTrue($validate->notAgeMin('01-01-1970', 'd-m-Y', 99));
  86. $this->assertTrue($validate->notAlnum('a.b.c-1/2/3'));
  87. $this->assertTrue($validate->notAlpha('abc.def.123'));
  88. $this->assertTrue($validate->notArray(123));
  89. $this->assertTrue($validate->notBase64('123'));
  90. $this->assertTrue($validate->notBetween(2, 5, 10));
  91. $this->assertTrue($validate->notBlank('notblank'));
  92. $this->assertTrue($validate->notBool('notbool'));
  93. $this->assertTrue($validate->notCreditCard('notcreditcard'));
  94. $this->assertTrue($validate->notDatetime('31-02-1970', 'd-m-Y'));
  95. $this->assertTrue($validate->notEmail('not.an.email.com'));
  96. $this->assertTrue($validate->notEqualTo(1, 2));
  97. $this->assertTrue($validate->notFloat([1, 2, 3]));
  98. $this->assertTrue($validate->notIP('notanip'));
  99. $this->assertTrue($validate->notIPv4('notanip'));
  100. $this->assertTrue($validate->notIPv6('notanip'));
  101. $this->assertTrue($validate->notInKeys('d', ['a' => 1, 'b' => 2, 'c' => 3]));
  102. $this->assertTrue($validate->notInValues(4, ['a' => 1, 'b' => 2, 'c' => 3]));
  103. $this->assertTrue($validate->notInt('notanint'));
  104. $this->assertTrue($validate->notLocale('notalocale'));
  105. $this->assertTrue($validate->notMax(5, 1));
  106. $this->assertTrue($validate->notMin(5, 10));
  107. $this->assertTrue($validate->notRegex('abc123def', '~^[a-zA-Z]*[0-9]*$~'));
  108. $this->assertTrue($validate->notStrictEqualTo(1, '1'));
  109. $this->assertTrue($validate->notString(['not', 'a', 'string']));
  110. $this->assertTrue($validate->notStrlenBetween('123', 5, 10));
  111. $this->assertTrue($validate->notStrlen('123', 5));
  112. $this->assertTrue($validate->notStrlenMax('123', 1));
  113. $this->assertTrue($validate->notStrlenMin('123', 5));
  114. $this->assertTrue($validate->notTimezone('notatimezone'));
  115. $this->assertTrue($validate->notTrim(' nottrimmed '));
  116. $this->assertTrue($validate->notURL('notaurl'));
  117. $this->assertTrue($validate->notWord('not a word'));
  118. $this->assertFalse($validate->isAgeBetween('31-02-1970', 'd-m-Y', 1, 10));
  119. $this->assertFalse($validate->isAgeBetween('01-01-1970', 'd-m-Y', 1, 10));
  120. $this->assertFalse($validate->isAgeMax('01-01-1970', 'd-m-Y', 1));
  121. $this->assertFalse($validate->isAgeMin('01-01-1970', 'd-m-Y', 99));
  122. $this->assertFalse($validate->isAlnum('a.b.c-1/2/3'));
  123. $this->assertFalse($validate->isAlpha('abc.def.123'));
  124. $this->assertFalse($validate->isArray(123));
  125. $this->assertFalse($validate->isBase64('123'));
  126. $this->assertFalse($validate->isBetween(2, 5, 10));
  127. $this->assertFalse($validate->isBlank('notblank'));
  128. $this->assertFalse($validate->isBool('notbool'));
  129. $this->assertFalse($validate->isCreditCard('notcreditcard'));
  130. $this->assertFalse($validate->isDatetime('31-02-1970', 'd-m-Y'));
  131. $this->assertFalse($validate->isEmail('not.an.email.com'));
  132. $this->assertFalse($validate->isEqualTo(1, 2));
  133. $this->assertFalse($validate->isFloat([1, 2, 3]));
  134. $this->assertFalse($validate->isIP('notanip'));
  135. $this->assertFalse($validate->isIPv4('notanip'));
  136. $this->assertFalse($validate->isIPv6('notanip'));
  137. $this->assertFalse($validate->isInKeys('d', ['a' => 1, 'b' => 2, 'c' => 3]));
  138. $this->assertFalse($validate->isInValues(4, ['a' => 1, 'b' => 2, 'c' => 3]));
  139. $this->assertFalse($validate->isInt('notanint'));
  140. $this->assertFalse($validate->isLocale('notalocale'));
  141. $this->assertFalse($validate->isMax(5, 1));
  142. $this->assertFalse($validate->isMin(5, 10));
  143. $this->assertFalse($validate->isRegex('abc123def', '~^[a-zA-Z]*[0-9]*$~'));
  144. $this->assertFalse($validate->isStrictEqualTo(1, '1'));
  145. $this->assertFalse($validate->isString(['not', 'a', 'string']));
  146. $this->assertFalse($validate->isStrlenBetween('123', 5, 10));
  147. $this->assertFalse($validate->isStrlen('123', 5));
  148. $this->assertFalse($validate->isStrlenMax('123', 1));
  149. $this->assertFalse($validate->isStrlenMin('123', 5));
  150. $this->assertFalse($validate->isTimezone('notatimezone'));
  151. $this->assertFalse($validate->isTrim(' nottrimmed '));
  152. $this->assertFalse($validate->isURL('notaurl'));
  153. $this->assertFalse($validate->isWord('not a word'));
  154. $this->assertFalse($validate->notAgeBetween('01-01-1970', 'd-m-Y', 1, 99));
  155. $this->assertFalse($validate->notAgeMax('01-01-1970', 'd-m-Y', 99));
  156. $this->assertFalse($validate->notAgeMin('01-01-1970', 'd-m-Y', 1));
  157. $this->assertFalse($validate->notAlnum('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'));
  158. $this->assertFalse($validate->notAlpha('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'));
  159. $this->assertFalse($validate->notArray([1, 2, 3]));
  160. $this->assertFalse($validate->notBase64(base64_encode('test')));
  161. $this->assertFalse($validate->notBetween(2, 1, 3));
  162. $this->assertFalse($validate->notBetween(2, 2, 2));
  163. $this->assertFalse($validate->notBlank(''));
  164. $this->assertFalse($validate->notBlank(' '));
  165. $this->assertFalse($validate->notBlank(null));
  166. $this->assertFalse($validate->notBool(true));
  167. $this->assertFalse($validate->notBool('1'));
  168. $this->assertFalse($validate->notBool('on'));
  169. $this->assertFalse($validate->notBool('true'));
  170. $this->assertFalse($validate->notBool('t'));
  171. $this->assertFalse($validate->notBool('yes'));
  172. $this->assertFalse($validate->notBool('y'));
  173. $this->assertFalse($validate->notBool(false));
  174. $this->assertFalse($validate->notBool('0'));
  175. $this->assertFalse($validate->notBool('off'));
  176. $this->assertFalse($validate->notBool('false'));
  177. $this->assertFalse($validate->notBool('f'));
  178. $this->assertFalse($validate->notBool('no'));
  179. $this->assertFalse($validate->notBool('n'));
  180. $this->assertFalse($validate->notCreditCard('5514689104747025'));
  181. $this->assertFalse($validate->notDatetime('01-01-1970', 'd-m-Y'));
  182. $this->assertFalse($validate->notEmail('name@domain.com'));
  183. $this->assertFalse($validate->notEmail('name@domain.co.uk'));
  184. $this->assertFalse($validate->notEqualTo(1, 1));
  185. $this->assertFalse($validate->notEqualTo(1, 1.0));
  186. $this->assertFalse($validate->notEqualTo(1, '1'));
  187. $this->assertFalse($validate->notFloat(1.0));
  188. $this->assertFalse($validate->notFloat(M_PI));
  189. $this->assertFalse($validate->notFloat('3.14159265359'));
  190. $this->assertFalse($validate->notInKeys('a', ['a' => 1, 'b' => 2, 'c' => 3]));
  191. $this->assertFalse($validate->notInt(1));
  192. $this->assertFalse($validate->notInValues(2, ['a' => 1, 'b' => 2, 'c' => 3]));
  193. $this->assertFalse($validate->notIP('184.165.132.11'));
  194. $this->assertFalse($validate->notIP('2001:0db8:85a3:0042:1000:8a2e:0370:7334'));
  195. $this->assertFalse($validate->notIPv4('184.165.132.11'));
  196. $this->assertFalse($validate->notIPv6('2001:0db8:85a3:0042:1000:8a2e:0370:7334'));
  197. $this->assertFalse($validate->notLocale('en_US'));
  198. $this->assertFalse($validate->notLocale('fr_CA'));
  199. $this->assertFalse($validate->notMax(2, 3));
  200. $this->assertFalse($validate->notMax(2, 2));
  201. $this->assertFalse($validate->notMin(2, 1));
  202. $this->assertFalse($validate->notMin(2, 2));
  203. $this->assertFalse($validate->notRegex('abc123def', '~^[^0-9]*123(.*)$~'));
  204. $this->assertFalse($validate->notStrictEqualTo(1, 1));
  205. $this->assertFalse($validate->notString('test'));
  206. $this->assertFalse($validate->notStrlenBetween('12345', 4, 6));
  207. $this->assertFalse($validate->notStrlenBetween('12345', 5, 5));
  208. $this->assertFalse($validate->notStrlenMax('12345', 6));
  209. $this->assertFalse($validate->notStrlenMax('12345', 5));
  210. $this->assertFalse($validate->notStrlenMin('12345', 4));
  211. $this->assertFalse($validate->notStrlenMin('12345', 5));
  212. $this->assertFalse($validate->notStrlen('12345', 5));
  213. $this->assertFalse($validate->notTimezone('America/New_York'));
  214. $this->assertFalse($validate->notTimezone('America/Argentina/Buenos_Aires'));
  215. $this->assertFalse($validate->notTrim('test'));
  216. $this->assertFalse($validate->notTrim('te st'));
  217. $this->assertFalse($validate->notURL('http://www.php.net/manual/en/timezones.america.php'));
  218. $this->assertFalse($validate->notURL('http://ca1.php.net/manual-lookup.php?pattern=x&lang=en&scope=quickref'));
  219. $this->assertFalse($validate->notWord('test'));
  220. }
  221. }