/tests/Zend/Measure/BinaryTest.php

https://github.com/devilsansclue/ZendFramework · PHP · 351 lines · 177 code · 28 blank · 146 comment · 0 complexity · 270b1b6f3d71315cc27cfa828b17eaa2 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_Measure
  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. * @version $Id$
  21. */
  22. /**
  23. * Zend_Measure_Binary
  24. */
  25. require_once 'Zend/Measure/Binary.php';
  26. /**
  27. * @category Zend
  28. * @package Zend_Measure
  29. * @subpackage UnitTests
  30. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. * @group Zend_Measure
  33. */
  34. class Zend_Measure_BinaryTest extends PHPUnit_Framework_TestCase
  35. {
  36. /**
  37. * test for Binary initialisation
  38. * expected instance
  39. */
  40. public function testBinaryInit()
  41. {
  42. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  43. $this->assertTrue($value instanceof Zend_Measure_Binary,'Zend_Measure_Binary Object not returned');
  44. }
  45. /**
  46. * test for exception unknown type
  47. * expected exception
  48. */
  49. public function testBinaryUnknownType()
  50. {
  51. try {
  52. $value = new Zend_Measure_Binary('100','Binary::UNKNOWN','de');
  53. $this->fail('Exception expected because of unknown type');
  54. } catch (Zend_Measure_Exception $e) {
  55. // success
  56. }
  57. }
  58. /**
  59. * test for exception unknown value
  60. * expected exception
  61. */
  62. public function testBinaryUnknownValue()
  63. {
  64. try {
  65. $value = new Zend_Measure_Binary('novalue',Zend_Measure_Binary::STANDARD,'de');
  66. $this->fail('Exception expected because of empty value');
  67. } catch (Zend_Measure_Exception $e) {
  68. // success
  69. }
  70. }
  71. /**
  72. * test for exception unknown locale
  73. * expected root value
  74. */
  75. public function testBinaryUnknownLocale()
  76. {
  77. try {
  78. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'nolocale');
  79. $this->fail('Exception expected because of unknown locale');
  80. } catch (Zend_Measure_Exception $e) {
  81. // success
  82. }
  83. }
  84. /**
  85. * test for exception no locale
  86. * expected root value
  87. */
  88. public function testBinaryNoLocale()
  89. {
  90. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD);
  91. $this->assertTrue(is_object($value),'Object expected because of standard locale');
  92. }
  93. /**
  94. * test for positive value
  95. * expected integer
  96. */
  97. public function testBinaryValuePositive()
  98. {
  99. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  100. $this->assertEquals('100', $value->getValue(), 'Zend_Measure_Binary value expected to be a positive integer');
  101. }
  102. /**
  103. * test for negative value
  104. * expected integer
  105. */
  106. public function testBinaryValueNegative()
  107. {
  108. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  109. $this->assertEquals('-100', $value->getValue(), 'Zend_Measure_Binary value expected to be a negative integer');
  110. }
  111. /**
  112. * test for decimal value
  113. * expected float
  114. */
  115. public function testBinaryValueDecimal()
  116. {
  117. $value = new Zend_Measure_Binary('-100,200',Zend_Measure_Binary::STANDARD,'de');
  118. $this->assertEquals(-100.200, $value->getValue(), 'Zend_Measure_Binary value expected to be a decimal value');
  119. }
  120. /**
  121. * test for decimal seperated value
  122. * expected float
  123. */
  124. public function testBinaryValueDecimalSeperated()
  125. {
  126. $value = new Zend_Measure_Binary('-100.100,200',Zend_Measure_Binary::STANDARD,'de');
  127. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Binary Object not returned');
  128. }
  129. /**
  130. * test for equality
  131. * expected true
  132. */
  133. public function testBinaryEquality()
  134. {
  135. $value = new Zend_Measure_Binary('-100.100,200',Zend_Measure_Binary::STANDARD,'de');
  136. $newvalue = new Zend_Measure_Binary('-100100,200',Zend_Measure_Binary::STANDARD,'de');
  137. $this->assertTrue($value->equals($newvalue),'Zend_Measure_Binary Object should be equal');
  138. }
  139. /**
  140. * test for no equality
  141. * expected false
  142. */
  143. public function testBinaryNoEquality()
  144. {
  145. $value = new Zend_Measure_Binary('-100.100,200',Zend_Measure_Binary::STANDARD,'de');
  146. $newvalue = new Zend_Measure_Binary('-100,200',Zend_Measure_Binary::STANDARD,'de');
  147. $this->assertFalse($value->equals($newvalue),'Zend_Measure_Binary Object should be not equal');
  148. }
  149. /**
  150. * test for set positive value
  151. * expected integer
  152. */
  153. public function testBinarySetPositive()
  154. {
  155. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  156. $value->setValue('200',Zend_Measure_Binary::STANDARD,'de');
  157. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Binary value expected to be a positive integer');
  158. }
  159. /**
  160. * test for set negative value
  161. * expected integer
  162. */
  163. public function testBinarySetNegative()
  164. {
  165. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  166. $value->setValue('-200',Zend_Measure_Binary::STANDARD,'de');
  167. $this->assertEquals(-200, $value->getValue(), 'Zend_Measure_Binary value expected to be a negative integer');
  168. }
  169. /**
  170. * test for set decimal value
  171. * expected float
  172. */
  173. public function testBinarySetDecimal()
  174. {
  175. $value = new Zend_Measure_Binary('-100,200',Zend_Measure_Binary::STANDARD,'de');
  176. $value->setValue('-200,200',Zend_Measure_Binary::STANDARD,'de');
  177. $this->assertEquals(-200.200, $value->getValue(), 'Zend_Measure_Binary value expected to be a decimal value');
  178. }
  179. /**
  180. * test for set decimal seperated value
  181. * expected float
  182. */
  183. public function testBinarySetDecimalSeperated()
  184. {
  185. $value = new Zend_Measure_Binary('-100.100,200',Zend_Measure_Binary::STANDARD,'de');
  186. $value->setValue('-200.200,200',Zend_Measure_Binary::STANDARD,'de');
  187. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Binary Object not returned');
  188. }
  189. /**
  190. * test for set string with integrated value
  191. * expected float
  192. */
  193. public function testBinarySetString()
  194. {
  195. $value = new Zend_Measure_Binary('-100.100,200', Zend_Measure_Binary::STANDARD, 'de');
  196. $value->setValue('-200.200,200', Zend_Measure_Binary::STANDARD, 'de');
  197. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Binary Object not returned');
  198. }
  199. /**
  200. * test for exception unknown type
  201. * expected exception
  202. */
  203. public function testBinarySetUnknownType()
  204. {
  205. try {
  206. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  207. $value->setValue('-200.200,200','Binary::UNKNOWN','de');
  208. $this->fail('Exception expected because of unknown type');
  209. } catch (Zend_Measure_Exception $e) {
  210. // success
  211. }
  212. }
  213. /**
  214. * test for exception unknown value
  215. * expected exception
  216. */
  217. public function testBinarySetUnknownValue()
  218. {
  219. try {
  220. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  221. $value->setValue('novalue',Zend_Measure_Binary::STANDARD,'de');
  222. $this->fail('Exception expected because of empty value');
  223. } catch (Zend_Measure_Exception $e) {
  224. // success
  225. }
  226. }
  227. /**
  228. * test for exception unknown locale
  229. * expected exception
  230. */
  231. public function testBinarySetUnknownLocale()
  232. {
  233. try {
  234. $value = new Zend_Measure_Binary('100',Zend_Measure_Binary::STANDARD,'de');
  235. $value->setValue('200',Zend_Measure_Binary::STANDARD,'nolocale');
  236. $this->fail('Exception expected because of unknown locale');
  237. } catch (Zend_Measure_Exception $e) {
  238. // success
  239. }
  240. }
  241. /**
  242. * test for exception unknown locale
  243. * expected exception
  244. */
  245. public function testBinarySetWithNoLocale()
  246. {
  247. $value = new Zend_Measure_Binary('100', Zend_Measure_Binary::STANDARD, 'de');
  248. $value->setValue('200', Zend_Measure_Binary::STANDARD);
  249. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Binary value expected to be a positive integer');
  250. }
  251. /**
  252. * test setting type
  253. * expected new type
  254. */
  255. public function testBinarySetType()
  256. {
  257. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  258. $value->setType(Zend_Measure_Binary::GIGABYTE);
  259. $this->assertEquals(Zend_Measure_Binary::GIGABYTE, $value->getType(), 'Zend_Measure_Binary type expected');
  260. }
  261. /**
  262. * test setting computed type
  263. * expected new type
  264. */
  265. public function testBinarySetComputedType1()
  266. {
  267. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::MEGABYTE,'de');
  268. $value->setType(Zend_Measure_Binary::TERABYTE);
  269. $this->assertEquals(Zend_Measure_Binary::TERABYTE, $value->getType(), 'Zend_Measure_Binary type expected');
  270. }
  271. /**
  272. * test setting computed type
  273. * expected new type
  274. */
  275. public function testBinarySetComputedType2()
  276. {
  277. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::TERABYTE,'de');
  278. $value->setType(Zend_Measure_Binary::KILOBYTE);
  279. $this->assertEquals(Zend_Measure_Binary::KILOBYTE, $value->getType(), 'Zend_Measure_Binary type expected');
  280. }
  281. /**
  282. * test setting unknown type
  283. * expected new type
  284. */
  285. public function testBinarySetTypeFailed()
  286. {
  287. try {
  288. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  289. $value->setType('Binary::UNKNOWN');
  290. $this->fail('Exception expected because of unknown type');
  291. } catch (Zend_Measure_Exception $e) {
  292. // success
  293. }
  294. }
  295. /**
  296. * test toString
  297. * expected string
  298. */
  299. public function testBinaryToString()
  300. {
  301. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  302. $this->assertEquals('-100 B', $value->toString(), 'Value -100 B expected');
  303. }
  304. /**
  305. * test __toString
  306. * expected string
  307. */
  308. public function testBinary_ToString()
  309. {
  310. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  311. $this->assertEquals('-100 B', $value->__toString(), 'Value -100 B expected');
  312. }
  313. /**
  314. * test getConversionList
  315. * expected array
  316. */
  317. public function testBinaryConversionList()
  318. {
  319. $value = new Zend_Measure_Binary('-100',Zend_Measure_Binary::STANDARD,'de');
  320. $unit = $value->getConversionList();
  321. $this->assertTrue(is_array($unit), 'Array expected');
  322. }
  323. }