/** * @param NodeInterface $node * * @return NodeCollectionInterface */ public function flow(NodeInterface $node) { if (!$node instanceof NodeCollectionInterface) { throw new InvalidArgumentException("The supplied {$node} is not a NodeCollectionInterface"); } $map = new Map(function (NodeInterface $item) { return $this->flow->flow($item); }); return $map->flow($node); }
public function testFlow() { $func = function () use(&$called) { $called = true; return true; }; $flow = new Map($func); $node = m::mock(NodeCollectionInterface::class); $node->shouldReceive('map')->with($func)->andReturn([]); $response = $flow->flow($node); static::assertNotSame($response, $node); static::assertInstanceOf(NodeCollectionInterface::class, $response); }