PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/unit-tests/DiTest.php

https://github.com/codeanu/cphalcon
PHP | 153 lines | 94 code | 42 blank | 17 comment | 0 complexity | 5d2186618668c57e3be9f3fc96c4813c MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /*
  3. +------------------------------------------------------------------------+
  4. | Phalcon Framework |
  5. +------------------------------------------------------------------------+
  6. | Copyright (c) 2011-2012 Phalcon Team (http://www.phalconphp.com) |
  7. +------------------------------------------------------------------------+
  8. | This source file is subject to the New BSD License that is bundled |
  9. | with this package in the file docs/LICENSE.txt. |
  10. | |
  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@phalconphp.com so we can send you a copy immediately. |
  14. +------------------------------------------------------------------------+
  15. | Authors: Andres Gutierrez <andres@phalconphp.com> |
  16. | Eduar Carvajal <eduar@phalconphp.com> |
  17. +------------------------------------------------------------------------+
  18. */
  19. class DiTest extends PHPUnit_Framework_TestCase
  20. {
  21. protected $_di;
  22. public function setUp()
  23. {
  24. $this->_di = new \Phalcon\DI();
  25. }
  26. public function testSetString()
  27. {
  28. $this->_di->set('request1', 'Phalcon\Http\Request');
  29. $request = $this->_di->get('request1');
  30. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  31. }
  32. public function testSetAnonymousFunction()
  33. {
  34. $this->_di->set('request2', function(){
  35. return new Phalcon\Http\Request();
  36. });
  37. $request = $this->_di->get('request2');
  38. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  39. }
  40. public function testSetArray()
  41. {
  42. $this->_di->set('request3', array(
  43. 'className' => 'Phalcon\Http\Request'
  44. ));
  45. $request = $this->_di->get('request3');
  46. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  47. }
  48. public function testAtempt()
  49. {
  50. $this->_di->set('request4', function(){
  51. return new Phalcon\Http\Request();
  52. });
  53. $this->_di->attempt('request4', function(){
  54. return new stdClass();
  55. });
  56. $this->_di->attempt('request5', function(){
  57. return new stdClass();
  58. });
  59. $request = $this->_di->get('request4');
  60. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  61. $request = $this->_di->get('request5');
  62. $this->assertEquals(get_class($request), 'stdClass');
  63. }
  64. public function testHas()
  65. {
  66. $this->_di->set('request6', function(){
  67. return new Phalcon\Http\Request();
  68. });
  69. $this->assertTrue($this->_di->has('request6'));
  70. $this->assertFalse($this->_di->has('request7'));
  71. }
  72. public function testShared()
  73. {
  74. $this->_di->set('dateObject', function(){
  75. $object = new stdClass();
  76. $object->date = microtime(true);
  77. return $object;
  78. });
  79. $dateObject = $this->_di->getShared('dateObject');
  80. $this->assertEquals(get_class($dateObject), 'stdClass');
  81. $this->assertTrue($this->_di->wasFreshInstance());
  82. $dateObject2 = $this->_di->getShared('dateObject');
  83. $this->assertEquals(get_class($dateObject), 'stdClass');
  84. $this->assertEquals($dateObject->date, $dateObject2->date);
  85. }
  86. public function testMagicCall()
  87. {
  88. $this->_di->set('request8', 'Phalcon\Http\Request');
  89. $request = $this->_di->getRequest8();
  90. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  91. $this->_di->setRequest9('Phalcon\Http\Request');
  92. $request = $this->_di->get('request9');
  93. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  94. }
  95. public function testFactoryDefault()
  96. {
  97. $factoryDefault = new Phalcon\DI\FactoryDefault();
  98. $request = $factoryDefault->get('request');
  99. $this->assertEquals(get_class($request), 'Phalcon\Http\Request');
  100. $response = $factoryDefault->get('response');
  101. $this->assertEquals(get_class($response), 'Phalcon\Http\Response');
  102. $filter = $factoryDefault->get('filter');
  103. $this->assertEquals(get_class($filter), 'Phalcon\Filter');
  104. $url = $factoryDefault->get('url');
  105. $this->assertEquals(get_class($url), 'Phalcon\Mvc\Url');
  106. $dispatcher = $factoryDefault->get('dispatcher');
  107. $this->assertEquals(get_class($dispatcher), 'Phalcon\Mvc\Dispatcher');
  108. $modelsManager = $factoryDefault->get('modelsManager');
  109. $this->assertEquals(get_class($modelsManager), 'Phalcon\Mvc\Model\Manager');
  110. }
  111. }