protected function setUpNodeWithNonMatchingContext(array $configurableMethods = array()) { $userWorkspace = $this->getMockBuilder(Workspace::class)->disableOriginalConstructor()->getMock(); $userWorkspace->expects($this->any())->method('getName')->will($this->returnValue('user')); $liveWorkspace = $this->getMockBuilder(Workspace::class)->disableOriginalConstructor()->getMock(); $liveWorkspace->expects($this->any())->method('getName')->will($this->returnValue('live')); $liveWorkspace->expects($this->any())->method('getBaseWorkspace')->will($this->returnValue(null)); $nodeData = $this->getMockBuilder(NodeData::class)->disableOriginalConstructor()->getMock(); $nodeData->expects($this->any())->method('getWorkspace')->will($this->returnValue($liveWorkspace)); $mockFirstLevelNodeCache = $this->createMock(FirstLevelNodeCache::class); $context = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock(); $context->expects($this->any())->method('getWorkspace')->will($this->returnValue($userWorkspace)); $context->expects($this->any())->method('getTargetDimensions')->will($this->returnValue(array())); $context->expects($this->any())->method('getFirstLevelNodeCache')->will($this->returnValue($mockFirstLevelNodeCache)); $node = $this->getMockBuilder(Node::class)->setMethods(array_merge(array('materializeNodeData'), $configurableMethods))->setConstructorArgs(array($nodeData, $context))->getMock(); $node->expects($this->once())->method('materializeNodeData'); return $node; }