VolumeTest.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  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-2015 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_Volume
  24. */
  25. require_once 'Zend/Measure/Volume.php';
  26. /**
  27. * @category Zend
  28. * @package Zend_Measure
  29. * @subpackage UnitTests
  30. * @copyright Copyright (c) 2005-2015 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_VolumeTest extends PHPUnit_Framework_TestCase
  35. {
  36. public function setUp()
  37. {
  38. }
  39. /**
  40. * test for Volume initialisation
  41. * expected instance
  42. */
  43. public function testVolumeInit()
  44. {
  45. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  46. $this->assertTrue($value instanceof Zend_Measure_Volume,'Zend_Measure_Volume Object not returned');
  47. }
  48. /**
  49. * test for exception unknown type
  50. * expected exception
  51. */
  52. public function testVolumeUnknownType()
  53. {
  54. try {
  55. $value = new Zend_Measure_Volume('100','Volume::UNKNOWN','de');
  56. $this->fail('Exception expected because of unknown type');
  57. } catch (Zend_Measure_Exception $e) {
  58. // success
  59. }
  60. }
  61. /**
  62. * test for exception unknown value
  63. * expected exception
  64. */
  65. public function testVolumeUnknownValue()
  66. {
  67. try {
  68. $value = new Zend_Measure_Volume('novalue',Zend_Measure_Volume::STANDARD,'de');
  69. $this->fail('Exception expected because of empty value');
  70. } catch (Zend_Measure_Exception $e) {
  71. // success
  72. }
  73. }
  74. /**
  75. * test for exception unknown locale
  76. * expected root value
  77. */
  78. public function testVolumeUnknownLocale()
  79. {
  80. try {
  81. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'nolocale');
  82. $this->fail('Exception expected because of unknown locale');
  83. } catch (Zend_Measure_Exception $e) {
  84. // success
  85. }
  86. }
  87. /**
  88. * test for standard locale
  89. * expected integer
  90. */
  91. public function testVolumeNoLocale()
  92. {
  93. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD);
  94. $this->assertEquals(100, $value->getValue(),'Zend_Measure_Volume value expected');
  95. }
  96. /**
  97. * test for positive value
  98. * expected integer
  99. */
  100. public function testVolumeValuePositive()
  101. {
  102. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  103. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Volume value expected to be a positive integer');
  104. }
  105. /**
  106. * test for negative value
  107. * expected integer
  108. */
  109. public function testVolumeValueNegative()
  110. {
  111. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  112. $this->assertEquals(-100, $value->getValue(), 'Zend_Measure_Volume value expected to be a negative integer');
  113. }
  114. /**
  115. * test for decimal value
  116. * expected float
  117. */
  118. public function testVolumeValueDecimal()
  119. {
  120. $value = new Zend_Measure_Volume('-100,200',Zend_Measure_Volume::STANDARD,'de');
  121. $this->assertEquals(-100.200, $value->getValue(), 'Zend_Measure_Volume value expected to be a decimal value');
  122. }
  123. /**
  124. * test for decimal seperated value
  125. * expected float
  126. */
  127. public function testVolumeValueDecimalSeperated()
  128. {
  129. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  130. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Volume Object not returned');
  131. }
  132. /**
  133. * test for string with integrated value
  134. * expected float
  135. */
  136. public function testVolumeValueString()
  137. {
  138. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  139. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Volume Object not returned');
  140. }
  141. /**
  142. * test for equality
  143. * expected true
  144. */
  145. public function testVolumeEquality()
  146. {
  147. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  148. $newvalue = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  149. $this->assertTrue($value->equals($newvalue),'Zend_Measure_Volume Object should be equal');
  150. }
  151. /**
  152. * test for no equality
  153. * expected false
  154. */
  155. public function testVolumeNoEquality()
  156. {
  157. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  158. $newvalue = new Zend_Measure_Volume('-100,200',Zend_Measure_Volume::STANDARD,'de');
  159. $this->assertFalse($value->equals($newvalue),'Zend_Measure_Volume Object should be not equal');
  160. }
  161. /**
  162. * test for set positive value
  163. * expected integer
  164. */
  165. public function testVolumeSetPositive()
  166. {
  167. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  168. $value->setValue('200',Zend_Measure_Volume::STANDARD,'de');
  169. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Volume value expected to be a positive integer');
  170. }
  171. /**
  172. * test for set negative value
  173. * expected integer
  174. */
  175. public function testVolumeSetNegative()
  176. {
  177. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  178. $value->setValue('-200',Zend_Measure_Volume::STANDARD,'de');
  179. $this->assertEquals(-200, $value->getValue(), 'Zend_Measure_Volume value expected to be a negative integer');
  180. }
  181. /**
  182. * test for set decimal value
  183. * expected float
  184. */
  185. public function testVolumeSetDecimal()
  186. {
  187. $value = new Zend_Measure_Volume('-100,200',Zend_Measure_Volume::STANDARD,'de');
  188. $value->setValue('-200,200',Zend_Measure_Volume::STANDARD,'de');
  189. $this->assertEquals(-200.200, $value->getValue(), 'Zend_Measure_Volume value expected to be a decimal value');
  190. }
  191. /**
  192. * test for set decimal seperated value
  193. * expected float
  194. */
  195. public function testVolumeSetDecimalSeperated()
  196. {
  197. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  198. $value->setValue('-200.200,200',Zend_Measure_Volume::STANDARD,'de');
  199. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Volume Object not returned');
  200. }
  201. /**
  202. * test for set string with integrated value
  203. * expected float
  204. */
  205. public function testVolumeSetString()
  206. {
  207. $value = new Zend_Measure_Volume('-100.100,200',Zend_Measure_Volume::STANDARD,'de');
  208. $value->setValue('-200.200,200',Zend_Measure_Volume::STANDARD,'de');
  209. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Volume Object not returned');
  210. }
  211. /**
  212. * test for exception unknown type
  213. * expected exception
  214. */
  215. public function testVolumeSetUnknownType()
  216. {
  217. try {
  218. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  219. $value->setValue('-200.200,200','Volume::UNKNOWN','de');
  220. $this->fail('Exception expected because of unknown type');
  221. } catch (Zend_Measure_Exception $e) {
  222. // success
  223. }
  224. }
  225. /**
  226. * test for exception unknown value
  227. * expected exception
  228. */
  229. public function testVolumeSetUnknownValue()
  230. {
  231. try {
  232. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  233. $value->setValue('novalue',Zend_Measure_Volume::STANDARD,'de');
  234. $this->fail('Exception expected because of empty value');
  235. } catch (Zend_Measure_Exception $e) {
  236. // success
  237. }
  238. }
  239. /**
  240. * test for exception unknown locale
  241. * expected exception
  242. */
  243. public function testVolumeSetUnknownLocale()
  244. {
  245. try {
  246. $value = new Zend_Measure_Volume('100',Zend_Measure_Volume::STANDARD,'de');
  247. $value->setValue('200',Zend_Measure_Volume::STANDARD,'nolocale');
  248. $this->fail('Exception expected because of unknown locale');
  249. } catch (Zend_Measure_Exception $e) {
  250. // success
  251. }
  252. }
  253. /**
  254. * test for exception unknown locale
  255. * expected exception
  256. */
  257. public function testVolumeSetWithNoLocale()
  258. {
  259. $value = new Zend_Measure_Volume('100', Zend_Measure_Volume::STANDARD, 'de');
  260. $value->setValue('200', Zend_Measure_Volume::STANDARD);
  261. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Volume value expected to be a positive integer');
  262. }
  263. /**
  264. * test setting type
  265. * expected new type
  266. */
  267. public function testVolumeSetType()
  268. {
  269. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  270. $value->setType(Zend_Measure_Volume::CORD);
  271. $this->assertEquals(Zend_Measure_Volume::CORD, $value->getType(), 'Zend_Measure_Volume type expected');
  272. }
  273. /**
  274. * test setting computed type
  275. * expected new type
  276. */
  277. public function testVolumeSetComputedType1()
  278. {
  279. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  280. $value->setType(Zend_Measure_Volume::CUBIC_YARD);
  281. $this->assertEquals(Zend_Measure_Volume::CUBIC_YARD, $value->getType(), 'Zend_Measure_Volume type expected');
  282. }
  283. /**
  284. * test setting computed type
  285. * expected new type
  286. */
  287. public function testVolumeSetComputedType2()
  288. {
  289. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::CUBIC_YARD,'de');
  290. $value->setType(Zend_Measure_Volume::STANDARD);
  291. $this->assertEquals(Zend_Measure_Volume::STANDARD, $value->getType(), 'Zend_Measure_Volume type expected');
  292. }
  293. /**
  294. * test setting unknown type
  295. * expected new type
  296. */
  297. public function testVolumeSetTypeFailed()
  298. {
  299. try {
  300. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  301. $value->setType('Volume::UNKNOWN');
  302. $this->fail('Exception expected because of unknown type');
  303. } catch (Zend_Measure_Exception $e) {
  304. // success
  305. }
  306. }
  307. /**
  308. * test toString
  309. * expected string
  310. */
  311. public function testVolumeToString()
  312. {
  313. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  314. $this->assertEquals('-100 m³', $value->toString(), 'Value -100 m³ expected');
  315. }
  316. /**
  317. * test __toString
  318. * expected string
  319. */
  320. public function testVolume_ToString()
  321. {
  322. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  323. $this->assertEquals('-100 m³', $value->__toString(), 'Value -100 m³ expected');
  324. }
  325. /**
  326. * test getConversionList
  327. * expected array
  328. */
  329. public function testVolumeConversionList()
  330. {
  331. $value = new Zend_Measure_Volume('-100',Zend_Measure_Volume::STANDARD,'de');
  332. $unit = $value->getConversionList();
  333. $this->assertTrue(is_array($unit), 'Array expected');
  334. }
  335. }