PageRenderTime 26ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/ZendFramework/tests/Zend/Measure/TemperatureTest.php

https://bitbucket.org/Dal-Papa/is-340-publish-base
PHP | 447 lines | 224 code | 66 blank | 157 comment | 6 complexity | 8b48b25d0530da3d8354d4d3726e3a2a 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-2012 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id: TemperatureTest.php 24593 2012-01-05 20:35:02Z matthew $
  21. */
  22. if (!defined('PHPUnit_MAIN_METHOD')) {
  23. define('PHPUnit_MAIN_METHOD', 'Zend_Measure_TemperatureTest::main');
  24. }
  25. /**
  26. * Zend_Measure_Temperature
  27. */
  28. require_once 'Zend/Measure/Temperature.php';
  29. /**
  30. * Zend_Registry
  31. */
  32. require_once 'Zend/Registry.php';
  33. /**
  34. * @category Zend
  35. * @package Zend_Measure
  36. * @subpackage UnitTests
  37. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  38. * @license http://framework.zend.com/license/new-bsd New BSD License
  39. * @group Zend_Measure
  40. */
  41. class Zend_Measure_TemperatureTest extends PHPUnit_Framework_TestCase
  42. {
  43. public static function main()
  44. {
  45. $suite = new PHPUnit_Framework_TestSuite(__CLASS__);
  46. $result = PHPUnit_TextUI_TestRunner::run($suite);
  47. }
  48. public function setup()
  49. {
  50. if (Zend_Registry::isRegistered('Zend_Locale')) {
  51. $registry = Zend_Registry::getInstance();
  52. unset($registry['Zend_Locale']);
  53. }
  54. Zend_Locale_Data::removeCache();
  55. $this->_locale = setlocale(LC_ALL, 0);
  56. setlocale(LC_ALL, 'de');
  57. }
  58. public function tearDown()
  59. {
  60. if (is_string($this->_locale) && strpos($this->_locale, ';')) {
  61. $locales = array();
  62. foreach (explode(';', $this->_locale) as $l) {
  63. $tmp = explode('=', $l);
  64. $locales[$tmp[0]] = $tmp[1];
  65. }
  66. setlocale(LC_ALL, $locales);
  67. return;
  68. }
  69. setlocale(LC_ALL, $this->_locale);
  70. }
  71. /**
  72. * test for Temperature initialisation
  73. * expected instance
  74. */
  75. public function testTemperatureInit()
  76. {
  77. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  78. $this->assertTrue($value instanceof Zend_Measure_Temperature,'Zend_Measure_Temperature Object not returned');
  79. }
  80. /**
  81. * test for exception unknown type
  82. * expected exception
  83. */
  84. public function testTemperatureUnknownType()
  85. {
  86. try {
  87. $value = new Zend_Measure_Temperature('100','Temperature::UNKNOWN','de');
  88. $this->fail('Exception expected because of unknown type');
  89. } catch (Zend_Measure_Exception $e) {
  90. // success
  91. }
  92. }
  93. /**
  94. * test for exception unknown value
  95. * expected exception
  96. */
  97. public function testTemperatureUnknownValue()
  98. {
  99. try {
  100. $value = new Zend_Measure_Temperature('novalue',Zend_Measure_Temperature::STANDARD,'de');
  101. $this->fail('Exception expected because of empty value');
  102. } catch (Zend_Measure_Exception $e) {
  103. // success
  104. }
  105. }
  106. /**
  107. * test for exception unknown locale
  108. * expected root value
  109. */
  110. public function testTemperatureUnknownLocale()
  111. {
  112. try {
  113. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'nolocale');
  114. $this->fail('Exception expected because of unknown locale');
  115. } catch (Zend_Measure_Exception $e) {
  116. // success
  117. }
  118. }
  119. /**
  120. * test for standard locale
  121. * expected integer
  122. */
  123. public function testTemperatureNoLocale()
  124. {
  125. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD);
  126. $this->assertEquals(100, $value->getValue(),'Zend_Measure_Temperature value expected');
  127. }
  128. /**
  129. * test for positive value
  130. * expected integer
  131. */
  132. public function testTemperatureValuePositive()
  133. {
  134. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  135. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Temperature value expected to be a positive integer');
  136. }
  137. /**
  138. * test for negative value
  139. * expected integer
  140. */
  141. public function testTemperatureValueNegative()
  142. {
  143. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  144. $this->assertEquals(-100, $value->getValue(), 'Zend_Measure_Temperature value expected to be a negative integer');
  145. }
  146. /**
  147. * test for decimal value
  148. * expected float
  149. */
  150. public function testTemperatureValueDecimal()
  151. {
  152. $value = new Zend_Measure_Temperature('-100,200',Zend_Measure_Temperature::STANDARD,'de');
  153. $this->assertEquals(-100.200, $value->getValue(), 'Zend_Measure_Temperature value expected to be a decimal value');
  154. }
  155. /**
  156. * test for decimal seperated value
  157. * expected float
  158. */
  159. public function testTemperatureValueDecimalSeperated()
  160. {
  161. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  162. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Temperature Object not returned');
  163. }
  164. /**
  165. * test for string with integrated value
  166. * expected float
  167. */
  168. public function testTemperatureValueString()
  169. {
  170. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  171. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Temperature Object not returned');
  172. }
  173. /**
  174. * test for equality
  175. * expected true
  176. */
  177. public function testTemperatureEquality()
  178. {
  179. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  180. $newvalue = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  181. $this->assertTrue($value->equals($newvalue),'Zend_Measure_Temperature Object should be equal');
  182. }
  183. /**
  184. * test for no equality
  185. * expected false
  186. */
  187. public function testTemperatureNoEquality()
  188. {
  189. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  190. $newvalue = new Zend_Measure_Temperature('-100,200',Zend_Measure_Temperature::STANDARD,'de');
  191. $this->assertFalse($value->equals($newvalue),'Zend_Measure_Temperature Object should be not equal');
  192. }
  193. /**
  194. * test for set positive value
  195. * expected integer
  196. */
  197. public function testTemperatureSetPositive()
  198. {
  199. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  200. $value->setValue('200',Zend_Measure_Temperature::STANDARD,'de');
  201. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Temperature value expected to be a positive integer');
  202. }
  203. /**
  204. * test for set negative value
  205. * expected integer
  206. */
  207. public function testTemperatureSetNegative()
  208. {
  209. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  210. $value->setValue('-200',Zend_Measure_Temperature::STANDARD,'de');
  211. $this->assertEquals(-200, $value->getValue(), 'Zend_Measure_Temperature value expected to be a negative integer');
  212. }
  213. /**
  214. * test for set decimal value
  215. * expected float
  216. */
  217. public function testTemperatureSetDecimal()
  218. {
  219. $value = new Zend_Measure_Temperature('-100,200',Zend_Measure_Temperature::STANDARD,'de');
  220. $value->setValue('-200,200',Zend_Measure_Temperature::STANDARD,'de');
  221. $this->assertEquals(-200.200, $value->getValue(), 'Zend_Measure_Temperature value expected to be a decimal value');
  222. }
  223. /**
  224. * test for set decimal seperated value
  225. * expected float
  226. */
  227. public function testTemperatureSetDecimalSeperated()
  228. {
  229. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  230. $value->setValue('-200.200,200',Zend_Measure_Temperature::STANDARD,'de');
  231. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Temperature Object not returned');
  232. }
  233. /**
  234. * test for set string with integrated value
  235. * expected float
  236. */
  237. public function testTemperatureSetString()
  238. {
  239. $value = new Zend_Measure_Temperature('-100.100,200',Zend_Measure_Temperature::STANDARD,'de');
  240. $value->setValue('-200.200,200',Zend_Measure_Temperature::STANDARD,'de');
  241. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Temperature Object not returned');
  242. }
  243. /**
  244. * test for exception unknown type
  245. * expected exception
  246. */
  247. public function testTemperatureSetUnknownType()
  248. {
  249. try {
  250. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  251. $value->setValue('-200.200,200','Temperature::UNKNOWN','de');
  252. $this->fail('Exception expected because of unknown type');
  253. } catch (Zend_Measure_Exception $e) {
  254. // success
  255. }
  256. }
  257. /**
  258. * test for exception unknown value
  259. * expected exception
  260. */
  261. public function testTemperatureSetUnknownValue()
  262. {
  263. try {
  264. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  265. $value->setValue('novalue',Zend_Measure_Temperature::STANDARD,'de');
  266. $this->fail('Exception expected because of empty value');
  267. } catch (Zend_Measure_Exception $e) {
  268. // success
  269. }
  270. }
  271. /**
  272. * test for exception unknown locale
  273. * expected exception
  274. */
  275. public function testTemperatureSetUnknownLocale()
  276. {
  277. try {
  278. $value = new Zend_Measure_Temperature('100',Zend_Measure_Temperature::STANDARD,'de');
  279. $value->setValue('200',Zend_Measure_Temperature::STANDARD,'nolocale');
  280. $this->fail('Exception expected because of unknown locale');
  281. } catch (Zend_Measure_Exception $e) {
  282. // success
  283. }
  284. }
  285. /**
  286. * test for exception unknown locale
  287. * expected exception
  288. */
  289. public function testTemperatureSetWithNoLocale()
  290. {
  291. $value = new Zend_Measure_Temperature('100', Zend_Measure_Temperature::STANDARD, 'de');
  292. $value->setValue('200', Zend_Measure_Temperature::STANDARD);
  293. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Temperature value expected to be a positive integer');
  294. }
  295. /**
  296. * test setting type
  297. * expected new type
  298. */
  299. public function testTemperatureSetType()
  300. {
  301. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  302. $value->setType(Zend_Measure_Temperature::KELVIN);
  303. $this->assertEquals(Zend_Measure_Temperature::KELVIN, $value->getType(), 'Zend_Measure_Temperature type expected');
  304. }
  305. /**
  306. * test setting type
  307. * expected new type
  308. */
  309. public function testTemperatureSetType1()
  310. {
  311. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::FAHRENHEIT,'de');
  312. $value->setType(Zend_Measure_Temperature::REAUMUR);
  313. $this->assertEquals(Zend_Measure_Temperature::REAUMUR, $value->getType(), 'Zend_Measure_Temperature type expected');
  314. }
  315. /**
  316. * test setting type
  317. * expected new type
  318. */
  319. public function testTemperatureSetType2()
  320. {
  321. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::REAUMUR,'de');
  322. $value->setType(Zend_Measure_Temperature::FAHRENHEIT);
  323. $this->assertEquals(Zend_Measure_Temperature::FAHRENHEIT, $value->getType(), 'Zend_Measure_Temperature type expected');
  324. }
  325. /**
  326. * test setting unknown type
  327. * expected new type
  328. */
  329. public function testTemperatureSetTypeFailed()
  330. {
  331. try {
  332. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  333. $value->setType('Temperature::UNKNOWN');
  334. $this->fail('Exception expected because of unknown type');
  335. } catch (Zend_Measure_Exception $e) {
  336. // success
  337. }
  338. }
  339. /**
  340. * test toString
  341. * expected string
  342. */
  343. public function testTemperatureToString()
  344. {
  345. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  346. $this->assertEquals('-100 °K', $value->toString(), 'Value -100 °K expected');
  347. }
  348. /**
  349. * test __toString
  350. * expected string
  351. */
  352. public function testTemperature_ToString()
  353. {
  354. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  355. $this->assertEquals('-100 °K', $value->__toString(), 'Value -100 °K expected');
  356. }
  357. /**
  358. * test getConversionList
  359. * expected array
  360. */
  361. public function testTemperatureConversionList()
  362. {
  363. $value = new Zend_Measure_Temperature('-100',Zend_Measure_Temperature::STANDARD,'de');
  364. $unit = $value->getConversionList();
  365. $this->assertTrue(is_array($unit), 'Array expected');
  366. }
  367. /**
  368. * test Detail conversions which often fail
  369. *
  370. */
  371. public function testDetailConversion()
  372. {
  373. $unit= new Zend_Measure_Temperature(100, Zend_Measure_Temperature::KELVIN, 'de');
  374. $this->assertSame('-280 °F', $unit->convertTo(Zend_Measure_Temperature::FAHRENHEIT, 0));
  375. $unit= new Zend_Measure_Temperature(100, Zend_Measure_Temperature::FAHRENHEIT, 'de');
  376. $this->assertSame('311 °K', $unit->convertTo(Zend_Measure_Temperature::KELVIN, 0));
  377. }
  378. }
  379. if (PHPUnit_MAIN_METHOD == 'Zend_Measure_TemperatureTest::main') {
  380. Zend_Measure_TemperatureTest::main();
  381. }