public function testWithLocators()
 {
     $this->if($this->mockClass('\\Spy\\Timeline\\Filter\\DataHydrator', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Filter\\DataHydrator\\Locator\\LocatorInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Model\\ActionInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Model\\ActionComponentInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Model\\ComponentInterface', '\\Mock'))->and($locator = new \Mock\LocatorInterface())->and($locator->getMockController()->supports = function ($model) {
         return $model == 'man';
     })->and($locator->getMockController()->locate = function ($model, $components) {
         $components['man#chuck']->getMockController()->getData = 'Chuck Norris';
         $components['man#bruce']->getMockController()->getData = 'Bruce Lee';
     })->and($component1 = new \Mock\ComponentInterface())->and($component1->getMockController()->getModel = 'man')->and($component1->getMockController()->getHash = 'man#chuck')->and($component2 = new \Mock\ComponentInterface())->and($component2->getMockController()->getModel = 'man')->and($component2->getMockController()->getHash = 'man#bruce')->and($component3 = new \Mock\ComponentInterface())->and($component3->getMockController()->getModel = 'monkey')->and($actionComponent1 = new \Mock\ActionComponentInterface())->and($actionComponent1->getMockController()->getComponent = $component1)->and($actionComponent2 = new \Mock\ActionComponentInterface())->and($actionComponent2->getMockController()->getComponent = $component2)->and($actionComponent3 = new \Mock\ActionComponentInterface())->and($actionComponent3->getMockController()->getComponent = $component3)->and($action = new \Mock\ActionInterface())->and($action->getMockController()->getActionComponents = array($actionComponent1, $actionComponent2, $actionComponent3))->and($filter = new \Mock\DataHydrator())->and($filter->addLocator($locator))->array($filter->filter(array($action)))->hasSize(1)->string($component1->getData())->isEqualTo('Chuck Norris')->string($component2->getData())->isEqualTo('Bruce Lee')->variable($component3->getData())->isNull()->and($filter = new \Mock\DataHydrator(true))->and($filter->addLocator($locator))->array($filter->filter(array($action)))->hasSize(0);
 }
 public function testFilterTwoDuplicateKeyPrioritySecond()
 {
     $this->if($filter = new TestedModel())->and($this->mockClass('\\Spy\\Timeline\\Model\\ActionInterface', '\\Mock'))->and($action1 = new \Mock\ActionInterface())->and($action1->getMockController()->hasDuplicateKey = true)->and($action1->getMockController()->getDuplicateKey = '123')->and($action1->getMockController()->getDuplicatePriority = 10)->and($action2 = new \Mock\ActionInterface())->and($action2->getMockController()->hasDuplicateKey = true)->and($action2->getMockController()->getDuplicateKey = '123')->and($action2->getMockController()->getDuplicatePriority = 20)->and($coll = array($action1, $action2))->array($filter->filter($coll))->hasSize(1)->isIdenticalTo(array(1 => $action2))->mock($action1)->call('setIsDuplicated')->never()->mock($action2)->call('setIsDuplicated')->once();
 }
 public function testProcessSpreads()
 {
     $this->if($this->mockClass('\\Spy\\Timeline\\Driver\\TimelineManagerInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Spread\\Entry\\EntryCollection', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Spread\\SpreadInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Model\\ActionInterface', '\\Mock'))->and($this->mockClass('\\Spy\\Timeline\\Model\\ComponentInterface', '\\Mock'))->and($timelineManager = new \Mock\TimelineManagerInterface())->and($entryCollection = new \Mock\EntryCollection())->and($entryCollection->getMockController()->add = null)->and($component = new \Mock\ComponentInterface())->and($action = new \Mock\ActionInterface())->and($action->getMockController()->getSubject = $component)->and($spread1 = new \Mock\SpreadInterface())->and($spread1->getMockController()->supports = true)->and($spread1->getMockController()->process = null)->and($spread2 = new \Mock\SpreadInterface())->and($spread2->getMockController()->supports = false)->and($deployer = new TestedModel($timelineManager, $entryCollection, true, 50))->and($deployer->addSpread($spread1))->and($deployer->addSpread($spread2))->object($deployer->processSpreads($action))->isEqualTo($entryCollection)->mock($entryCollection)->call('add')->once()->mock($spread1)->call('supports')->once()->call('process')->once()->mock($spread2)->call('supports')->once()->call('process')->never();
 }
Beispiel #4
0
 public function testBuild()
 {
     $this->if($this->mockClass('\\Spy\\Timeline\\Model\\ActionInterface', '\\Mock'))->if($this->mockClass('\\Spy\\Timeline\\Model\\ActionComponentInterface', '\\Mock'))->if($this->mockClass('\\Spy\\Timeline\\Model\\ComponentInterface', '\\Mock'))->and($component1 = new \Mock\ComponentInterface())->and($component1->getMockController()->getHash = 'hashOA')->and($component2 = new \Mock\ComponentInterface())->and($component2->getMockController()->getHash = 'hashoir')->and($component3 = new \Mock\ComponentInterface())->and($component3->getMockController()->getData = 'already set')->and($actionComponent1 = new \Mock\ActionComponentInterface())->and($actionComponent1->getMockController()->getComponent = $component1)->and($actionComponent2 = new \Mock\ActionComponentInterface())->and($actionComponent2->getMockController()->getComponent = $component2)->and($actionComponent3 = new \Mock\ActionComponentInterface())->and($actionComponent3->getMockController()->getComponent = $component2)->and($action = new \Mock\ActionInterface())->and($action->getMockController()->getActionComponents = array($actionComponent1, $actionComponent2, $actionComponent3))->and($entry = new TestedModel($action, 'key'))->when($entry->build())->array($entry->getComponents())->isIdenticalTo(array('hashOA' => $component1, 'hashoir' => $component2));
 }