PageRenderTime 119ms CodeModel.GetById 25ms RepoModel.GetById 59ms app.codeStats 1ms

/tests/units/classes/mock/controller.php

http://github.com/mageekguy/atoum
PHP | 544 lines | 515 code | 26 blank | 3 comment | 0 complexity | 8f2f0bc1d21db9b2bbadfedc480296b9 MD5 | raw file
  1. <?php
  2. namespace mageekguy\atoum\tests\units\mock;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\mock,
  6. mageekguy\atoum\test\adapter,
  7. mageekguy\atoum\test\adapter\invoker,
  8. mageekguy\atoum\mock\controller as testedClass
  9. ;
  10. require_once __DIR__ . '/../../runner.php';
  11. class with__callAndOtherMethods
  12. {
  13. public $public = null;
  14. public function __construct() {}
  15. public function __call($method, $arguments) {}
  16. public function doesSomething() { return 'something done'; }
  17. public function doesSomethingElse() {}
  18. }
  19. class bar {}
  20. class controller extends atoum\test
  21. {
  22. public function testClass()
  23. {
  24. $this->testedClass->extends('mageekguy\atoum\test\adapter');
  25. }
  26. public function test__construct()
  27. {
  28. $this
  29. ->if($mockController = new testedClass())
  30. ->then
  31. ->sizeOf($mockController->getCalls())->isZero()
  32. ->array($mockController->getInvokers())->isEmpty()
  33. ->variable($mockController->getMockClass())->isNull()
  34. ->array($mockController->getMethods())->isEmpty()
  35. ->object($mockController->getIterator())->isEqualTo(new mock\controller\iterator($mockController))
  36. ->boolean($mockController->autoBindIsEnabled())->isTrue()
  37. ->if(testedClass::disableAutoBindForNewMock())
  38. ->and($mockController = new testedClass())
  39. ->then
  40. ->boolean($mockController->autoBindIsEnabled())->isFalse()
  41. ->if(testedClass::enableAutoBindForNewMock())
  42. ->and($mockControllerWithAutoBind = new testedClass())
  43. ->and(testedClass::disableAutoBindForNewMock())
  44. ->and($mockControllerWithoutAutoBind = new testedClass())
  45. ->then
  46. ->boolean($mockControllerWithAutoBind->autoBindIsEnabled())->isTrue()
  47. ->boolean($mockControllerWithoutAutoBind->autoBindIsEnabled())->isFalse()
  48. ;
  49. }
  50. public function test__set()
  51. {
  52. $this
  53. ->if($mockController = new testedClass())
  54. ->and($mockController->{$method = 'aMethod'} = $return = uniqid())
  55. ->then
  56. ->string($mockController->invoke($method))->isEqualTo($return)
  57. ->string($mockController->invoke(strtoupper($method)))->isEqualTo($return)
  58. ->if($mockController->{$otherMethod = 'anOtherMethod'} = $otherReturn = uniqid())
  59. ->then
  60. ->string($mockController->invoke($method))->isEqualTo($return)
  61. ->string($mockController->invoke(strtoupper($method)))->isEqualTo($return)
  62. ->string($mockController->invoke($otherMethod))->isEqualTo($otherReturn)
  63. ->string($mockController->invoke(strtoupper($otherMethod)))->isEqualTo($otherReturn)
  64. ->if($mockController->control(new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods()))
  65. ->then
  66. ->string($mockController->invoke($method))->isEqualTo($return)
  67. ->string($mockController->invoke(strtoupper($method)))->isEqualTo($return)
  68. ->if($mockController->control($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods()))
  69. ->and($mockController->undefinedMethod = $returnOfUndefinedMethod = uniqid())
  70. ->then
  71. ->string($mockController->invoke('undefinedMethod'))->isEqualTo($returnOfUndefinedMethod)
  72. ;
  73. }
  74. /** @php 5.4 */
  75. public function test__setAndBindToMock()
  76. {
  77. $this
  78. ->if($mockController = new testedClass())
  79. ->and($mockController->control($mock = new \mock\mageekguy\atoum\tests\units\mock\foo()))
  80. ->and($mockController->doesSomething = function() use (& $public) { $this->public = $public = uniqid(); })
  81. ->and($mock->doesSomething())
  82. ->then
  83. ->string($mock->public)->isEqualTo($public)
  84. ->if($mockController = new testedClass())
  85. ->and($mockController->__construct = function() use (& $public) { $this->public = $public = uniqid(); })
  86. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods())
  87. ->then
  88. ->string($mock->public)->isEqualTo($public)
  89. ->if($mockController = new testedClass())
  90. ->and($mockController->__construct = function() use (& $public) { $this->public = $public = uniqid(); })
  91. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods($mockController))
  92. ->then
  93. ->string($mock->public)->isEqualTo($public)
  94. ->if($mockController->disableAutoBind())
  95. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods($mockController))
  96. ->then
  97. ->variable($mock->public)->isNull()
  98. ->if(testedClass::disableAutoBindForNewMock())
  99. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods($mockController))
  100. ->then
  101. ->variable($mock->public)->isNull()
  102. ->if($mockController = new testedClass())
  103. ->and($mockController->__construct = function() use (& $public) { $this->public = $public = uniqid(); })
  104. ->and($mockController->enableAutoBind())
  105. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods($mockController))
  106. ->then
  107. ->string($mock->public)->isEqualTo($public)
  108. ;
  109. }
  110. /** @php 5.4 */
  111. public function testEnableAutoBind()
  112. {
  113. $this
  114. ->if($mockController = new testedClass())
  115. ->then
  116. ->object($mockController->enableAutoBind())->isIdenticalTo($mockController)
  117. ->boolean($mockController->autoBindIsEnabled())->isTrue()
  118. ->if($mockController->disableAutoBind())
  119. ->then
  120. ->object($mockController->enableAutoBind())->isIdenticalTo($mockController)
  121. ->boolean($mockController->autoBindIsEnabled())->isTrue()
  122. ->if($mockController->disableAutoBind())
  123. ->and($mockController->doesSomething = function() { return $this; })
  124. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\foo($mockController))
  125. ->then
  126. ->object($mockController->enableAutoBind())->isIdenticalTo($mockController)
  127. ->boolean($mockController->autoBindIsEnabled())->isTrue()
  128. ->object($mock->doesSomething())->isIdenticalTo($mock)
  129. ;
  130. }
  131. /** @php 5.4 */
  132. public function testDisableAutoBind()
  133. {
  134. $this
  135. ->if($mockController = new testedClass())
  136. ->then
  137. ->object($mockController->disableAutoBind())->isIdenticalTo($mockController)
  138. ->boolean($mockController->autoBindIsEnabled())->isFalse()
  139. ->if($mockController->enableAutoBind())
  140. ->then
  141. ->object($mockController->disableAutoBind())->isIdenticalTo($mockController)
  142. ->boolean($mockController->autoBindIsEnabled())->isFalse()
  143. ->if($mockController->enableAutoBind())
  144. ->and($mockController->doesSomething = function() { return $this; })
  145. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\foo($mockController))
  146. ->then
  147. ->object($mockController->disableAutoBind())->isIdenticalTo($mockController)
  148. ->boolean($mockController->autoBindIsEnabled())->isFalse()
  149. ->boolean(isset($mockController->doesSomething))->isFalse()
  150. ;
  151. }
  152. public function test__isset()
  153. {
  154. $this
  155. ->if($mockController = new testedClass())
  156. ->then
  157. ->boolean(isset($mockController->{uniqid()}))->isFalse()
  158. ->if($mockController->{$method = uniqid()} = function() {})
  159. ->then
  160. ->boolean(isset($mockController->{uniqid()}))->isFalse()
  161. ->boolean(isset($mockController->{$method}))->isTrue()
  162. ->boolean(isset($mockController->{strtoupper($method)}))->isTrue()
  163. ;
  164. }
  165. public function test__get()
  166. {
  167. $this
  168. ->if($mockController = new testedClass())
  169. ->then
  170. ->object($mockController->{uniqid()})->isInstanceOf('mageekguy\atoum\test\adapter\invoker')
  171. ->if($mockController->{$method = uniqid()} = $function = function() {})
  172. ->then
  173. ->object($mockController->{uniqid()})->isInstanceOf('mageekguy\atoum\test\adapter\invoker')
  174. ->object($mockController->{$method}->getClosure())->isIdenticalTo($function)
  175. ->object($mockController->{strtoupper($method)}->getClosure())->isIdenticalTo($function)
  176. ->if($mockController->{$otherMethod = uniqid()} = $return = uniqid())
  177. ->then
  178. ->object($mockController->{uniqid()})->isInstanceOf('mageekguy\atoum\test\adapter\invoker')
  179. ->object($mockController->{$method}->getClosure())->isIdenticalTo($function)
  180. ->object($mockController->{strtoupper($method)}->getClosure())->isIdenticalTo($function)
  181. ->object($mockController->{$otherMethod}->getClosure())->isInstanceOf('closure')
  182. ->object($mockController->{strtoupper($otherMethod)}->getClosure())->isInstanceOf('closure')
  183. ->string($mockController->{$otherMethod}->invoke())->isEqualTo($return)
  184. ->string($mockController->{strtoupper($otherMethod)}->invoke())->isEqualTo($return)
  185. ;
  186. }
  187. public function test__unset()
  188. {
  189. $this
  190. ->if($mockController = new testedClass())
  191. ->then
  192. ->boolean(isset($mockController->{$method = uniqid()}))->isFalse()
  193. ->if($mockController->{$method} = uniqid())
  194. ->then
  195. ->boolean(isset($mockController->{$method}))->isTrue()
  196. ->boolean(isset($mockController->{strtoupper($method)}))->isTrue()
  197. ->when(function() use ($mockController, $method) { unset($mockController->{$method}); })
  198. ->then
  199. ->boolean(isset($mockController->{$method}))->isFalse()
  200. ->boolean(isset($mockController->{strtoupper($method)}))->isFalse()
  201. ->if($mockController->notControlNextNewMock())
  202. ->and($reflectionClass = new \mock\reflectionClass($this))
  203. ->and($mockController = new testedClass())
  204. ->and($mockController->control($reflectionClass))
  205. ->then
  206. ->boolean(isset($mockController->getMethods))->isFalse()
  207. ->if($mockController->getMethods = null)
  208. ->then
  209. ->boolean(isset($mockController->getMethods))->isTrue()
  210. ->boolean(isset($mockController->GetMethods))->isTrue()
  211. ->boolean(isset($mockController->GETMETHODS))->isTrue()
  212. ->when(function() use ($mockController) { unset($mockController->getMethods); })
  213. ->then
  214. ->boolean(isset($mockController->getMethods))->isFalse()
  215. ->boolean(isset($mockController->GetMethods))->isFalse()
  216. ->boolean(isset($mockController->GETMETHODS))->isFalse()
  217. ;
  218. }
  219. public function testSetIterator()
  220. {
  221. $this
  222. ->if($mockController = new testedClass())
  223. ->then
  224. ->object($mockController->setIterator($iterator = new mock\controller\iterator()))->isIdenticalTo($mockController)
  225. ->object($mockController->getIterator())->isEqualTo($iterator)
  226. ->object($iterator->getMockController())->isIdenticalTo($mockController)
  227. ->object($mockController->setIterator())->isIdenticalTo($mockController)
  228. ->object($mockController->getIterator())
  229. ->isNotIdenticalTo($iterator)
  230. ->isEqualTo(new mock\controller\iterator($mockController))
  231. ;
  232. }
  233. public function getMockClass()
  234. {
  235. $this
  236. ->if($mockController = new testedClass())
  237. ->then
  238. ->variable($mockController->getMockClass())->isNull()
  239. ->if($mockController->control($mock = new \mock\object()))
  240. ->then
  241. ->string($mockController->getMockClass())->isEqualTo(get_class($mock))
  242. ;
  243. }
  244. public function testGetMethods()
  245. {
  246. $this
  247. ->if($mockController = new testedClass())
  248. ->then
  249. ->array($mockController->getMethods())->isEmpty()
  250. ->if($mockController->control($mock = new \mock\object()))
  251. ->then
  252. ->string($mockController->getMockClass())->isEqualTo(get_class($mock))
  253. ->array($mockController->getMethods())->isEqualTo($mock->getMockedMethods())
  254. ->if($mockController->control($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods()))
  255. ->then
  256. ->string($mockController->getMockClass())->isEqualTo(get_class($mock))
  257. ->array($mockController->getMethods())->isEqualTo($mock->getMockedMethods())
  258. ;
  259. }
  260. public function testMethods()
  261. {
  262. $this
  263. ->if($mockController = new testedClass())
  264. ->then
  265. ->object($mockController->methods())->isEqualTo($mockController->getIterator())
  266. ->array($mockController->getIterator()->getFilters())->isEmpty()
  267. ->object($mockController->methods($filter = function() {}))->isEqualTo($mockController->getIterator())
  268. ->array($mockController->getIterator()->getFilters())->isEqualTo(array($filter))
  269. ->object($mockController->methods($otherFilter = function() {}))->isEqualTo($mockController->getIterator())
  270. ->array($mockController->getIterator()->getFilters())->isEqualTo(array($otherFilter))
  271. ;
  272. }
  273. public function testMethodsMatching()
  274. {
  275. $this
  276. ->if($mockController = new testedClass())
  277. ->and($mockController->control(new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods()))
  278. ->then
  279. ->object($mockController->methodsMatching('/Else$/i'))->isEqualTo($mockController->getIterator())
  280. ->array($mockController->getIterator()->getMethods())->isEqualTo(array('doessomethingelse'))
  281. ->object($mockController->methodsMatching('/^doesSomething/i'))->isEqualTo($mockController->getIterator())
  282. ->array($mockController->getIterator()->getMethods())->isEqualTo(array('doessomething', 'doessomethingelse'))
  283. ;
  284. }
  285. public function testDoesNothing()
  286. {
  287. $this
  288. ->if($mock = new \mock\mageekguy\atoum\tests\units\mock\foo())
  289. ->and($this->calling($mock)->doesSomething->doesNothing())
  290. ->then
  291. ->variable($mock->doesSomething())->isNull()
  292. ;
  293. }
  294. public function testDoesSomething()
  295. {
  296. $this
  297. ->if($mock = new \mock\mageekguy\atoum\tests\units\mock\with__callAndOtherMethods())
  298. ->and($this->calling($mock)->doesSomething->doesNothing())
  299. ->and($this->calling($mock)->doesSomething->doesSomething())
  300. ->then
  301. ->string($mock->doesSomething())->isEqualTo('something done')
  302. ;
  303. }
  304. public function testControl()
  305. {
  306. $this
  307. ->if->mockGenerator->shunt('__construct')
  308. ->and($aMock = new \mock\reflectionClass(uniqid()))
  309. ->and($mockController = new testedClass())
  310. ->then
  311. ->variable($mockController->getMockClass())->isNull()
  312. ->array($mockController->getInvokers())->isEmpty()
  313. ->sizeOf($mockController->getCalls())->isZero()
  314. ->object($mockController->control($aMock))->isIdenticalTo($mockController)
  315. ->string($mockController->getMockClass())->isEqualTo(get_class($aMock))
  316. ->array($mockController->getInvokers())->hasSize(sizeof(\mock\reflectionClass::getMockedMethods()))
  317. ->array($mockController->getMethods())->isEqualTo(\mock\reflectionClass::getMockedMethods())
  318. ->sizeOf($mockController->getCalls())->isZero()
  319. ->if($mock = new \mock\foo())
  320. ->and($mockController = new testedClass())
  321. ->and($mockController->controlNextNewMock())
  322. ->and($mockController->control($mock))
  323. ->then
  324. ->variable(testedClass::get())->isNull()
  325. ->if($mockController = new testedClass())
  326. ->and($mockController->{$method = uniqid()} = uniqid())
  327. ->then
  328. ->exception(function() use ($mockController, $aMock) { $mockController->control($aMock); })
  329. ->isInstanceOf('mageekguy\atoum\exceptions\logic')
  330. ->hasMessage('Method \'' . get_class($aMock) . '::' . $method . '()\' does not exist')
  331. ->if($mockController->disableMethodChecking())
  332. ->and($mockController->{uniqid()} = uniqid())
  333. ->then
  334. ->object($mockController->control($aMock))->isIdenticalTo($mockController)
  335. ;
  336. }
  337. public function testControlNextNewMock()
  338. {
  339. $this
  340. ->if($mockController = new testedClass())
  341. ->then
  342. ->object($mockController->controlNextNewMock())->isIdenticalTo($mockController)
  343. ->object(testedClass::get())->isIdenticalTo($mockController)
  344. ;
  345. }
  346. public function testNotControlNextNewMock()
  347. {
  348. $this
  349. ->if($mockController = new testedClass())
  350. ->and($mockController->controlNextNewMock())
  351. ->then
  352. ->object($mockController->notControlNextNewMock())->isIdenticalTo($mockController)
  353. ->variable(testedClass::get())->isNull()
  354. ->if($mockController = new testedClass())
  355. ->and($otherMockController = new testedClass())
  356. ->and($otherMockController->controlNextNewMock())
  357. ->then
  358. ->object($mockController->notControlNextNewMock())->isIdenticalTo($mockController)
  359. ->object(testedClass::get())->isIdenticalTo($otherMockController)
  360. ;
  361. }
  362. public function testInvoke()
  363. {
  364. $this
  365. ->if($calls = new \mock\mageekguy\atoum\test\adapter\calls())
  366. ->and($mockController = new testedClass())
  367. ->and($mockController->notControlNextNewMock())
  368. ->and($mockController->setCalls($calls))
  369. ->and($method = uniqid())
  370. ->then
  371. ->exception(function() use ($mockController, $method) {
  372. $mockController->invoke($method, array());
  373. }
  374. )
  375. ->isInstanceOf('mageekguy\atoum\exceptions\logic')
  376. ->hasMessage('Method ' . $method . '() is not under control')
  377. ->if($return = uniqid())
  378. ->and($mockController->test = function() use ($return) { return $return; })
  379. ->and($argument1 = uniqid())
  380. ->and($argument2 = uniqid())
  381. ->and($argument3 = uniqid())
  382. ->then
  383. ->string($mockController->invoke('test'))->isEqualTo($return)
  384. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test', array()))->once()
  385. ->string($mockController->invoke('test', array($argument1)))->isEqualTo($return)
  386. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test', array($argument1)))->once()
  387. ->string($mockController->invoke('test', array($argument1, $argument2)))->isEqualTo($return)
  388. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test', array($argument1, $argument2)))->once()
  389. ->string($mockController->invoke('test', array($argument1, $argument2, $argument3)))->isEqualTo($return)
  390. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test', array($argument1, $argument2, $argument3)))->once()
  391. ->if($mockController->test2 = function() use ($return) { return $return; })
  392. ->then
  393. ->string($mockController->invoke('test2', array($argument1)))->isEqualTo($return)
  394. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test2', array($argument1)))->once()
  395. ->string($mockController->invoke('test2', array($argument1, $argument2)))->isEqualTo($return)
  396. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test2', array($argument1, $argument2)))->once()
  397. ->string($mockController->invoke('test2', array($argument1, $argument2, $argument3)))->isEqualTo($return)
  398. ->mock($calls)->call('addCall')->withArguments(new adapter\call('test2', array($argument1, $argument2, $argument3)))->once()
  399. ->if($mockController = new testedClass())
  400. ->and($mockController->control($mock = new \mock\mageekguy\atoum\tests\units\mock\bar()))
  401. ->then
  402. ->exception(function() use ($mockController) { $mockController->foo = uniqid(); })
  403. ->isInstanceOf('mageekguy\atoum\exceptions\logic')
  404. ->hasMessage('Method \'mock\\' . __NAMESPACE__ . '\bar::foo()\' does not exist')
  405. ;
  406. }
  407. public function testGet()
  408. {
  409. $this
  410. ->variable(testedClass::get())->isNull()
  411. ->if($mockController = new testedClass())
  412. ->and($mockController->controlNextNewMock())
  413. ->then
  414. ->object(testedClass::get(false))->isIdenticalTo($mockController)
  415. ->object(testedClass::get())->isIdenticalTo($mockController)
  416. ->variable(testedClass::get())->isNull()
  417. ;
  418. }
  419. public function testReset()
  420. {
  421. $this
  422. ->if($mockController = new testedClass())
  423. ->then
  424. ->variable($mockController->getMockClass())->isNull()
  425. ->array($mockController->getInvokers())->isEmpty()
  426. ->array($mockController->getMethods())->isEmpty()
  427. ->sizeof($mockController->getCalls())->isZero()
  428. ->object($mockController->reset())->isIdenticalTo($mockController)
  429. ->variable($mockController->getMockClass())->isNull()
  430. ->array($mockController->getInvokers())->isEmpty()
  431. ->array($mockController->getMethods())->isEmpty()
  432. ->sizeof($mockController->getCalls())->isZero()
  433. ->if($adapter = new atoum\test\adapter())
  434. ->and($adapter->class_exists = true)
  435. ->and($mock = new \mock\mageekguy\atoum\tests\units\mock\controller($adapter))
  436. ->and($mockController->control($mock))
  437. ->and($mockController->{$method = __FUNCTION__} = function() {})
  438. ->and($mockController->invoke($method, array()))
  439. ->then
  440. ->variable($mockController->getMockClass())->isNotNull()
  441. ->array($mockController->getInvokers())->isNotEmpty()
  442. ->array($mockController->getMethods())->isNotEmpty()
  443. ->sizeof($mockController->getCalls())->isGreaterThan(0)
  444. ->object($mockController->reset())->isIdenticalTo($mockController)
  445. ->variable($mockController->getMockClass())->isNull()
  446. ->array($mockController->getInvokers())->isEmpty()
  447. ->array($mockController->getMethods())->isEmpty()
  448. ->sizeof($mockController->getCalls())->isZero()
  449. ;
  450. }
  451. public function testSetCalls()
  452. {
  453. $this
  454. ->if($mockController = new testedClass())
  455. ->then
  456. ->object($mockController->setCalls($calls = new adapter\calls()))->isIdenticalTo($mockController)
  457. ->object($mockController->getCalls())->isIdenticalTo($calls)
  458. ->object($mockController->setCalls())->isIdenticalTo($mockController)
  459. ->object($mockController->getCalls())
  460. ->isNotIdenticalTo($calls)
  461. ->isEqualTo(new adapter\calls())
  462. ->if($calls = new adapter\calls())
  463. ->and($calls[] = new adapter\call(uniqid()))
  464. ->and($mockController->setCalls($calls))
  465. ->then
  466. ->object($mockController->getCalls())
  467. ->isIdenticalTo($calls)
  468. ->hasSize(0)
  469. ;
  470. }
  471. public function testGetCalls()
  472. {
  473. $this
  474. ->if($mockController = new testedClass())
  475. ->then
  476. ->object($mockController->getCalls())
  477. ->isInstanceOf('mageekguy\atoum\test\adapter\calls')
  478. ->hasSize(0)
  479. ->if($mockController->setCalls($calls = new adapter\calls()))
  480. ->then
  481. ->object($mockController->getCalls())->isIdenticalTo($calls)
  482. ;
  483. }
  484. public function testResetCalls()
  485. {
  486. $this
  487. ->if($mockController = new testedClass())
  488. ->and($mockController->{$method = uniqid()} = function() {})
  489. ->then
  490. ->sizeof($mockController->getCalls())->isZero()
  491. ->if($mockController->invoke($method, array()))
  492. ->then
  493. ->sizeof($mockController->getCalls())->isGreaterThan(0)
  494. ->object($mockController->resetCalls())->isIdenticalTo($mockController)
  495. ->sizeof($mockController->getCalls())->isZero()
  496. ;
  497. }
  498. public function testGetForMock()
  499. {
  500. $this
  501. ->if($mockController = new testedClass())
  502. ->and($mockController->control($mock = new \mock\object()))
  503. ->then
  504. ->object(testedClass::getForMock($mock))->isIdenticalTo($mockController)
  505. ->if($otherMockController = new testedClass())
  506. ->and($otherMockController->control($otherMock = new \mock\object()))
  507. ->then
  508. ->object(testedClass::getForMock($mock))->isIdenticalTo($mockController)
  509. ->object(testedClass::getForMock($otherMock))->isIdenticalTo($otherMockController)
  510. ;
  511. }
  512. }