public function it_should_provide_a_method_to_determine_if_a_node_is_versionable(NodeInterface $nodeVersionable, NodeInterface $nodeNotVersionable, NodeTypeInterface $mixin1, NodeTypeInterface $mixin2) { $nodeVersionable->getMixinNodeTypes()->willReturn(array($mixin1, $mixin2)); $nodeNotVersionable->getMixinNodeTypes()->willReturn(array($mixin2)); $nodeNotVersionable->getPath()->willReturn('foobar'); $mixin1->getName()->willReturn('mix:versionable'); $this->assertNodeIsVersionable($nodeVersionable)->shouldReturn(null); try { $this->assertNodeIsVersionable($nodeNotVersionable); } catch (\OutOfBoundsException $e) { } }
/** * Process the given node and return eventual extra operations determined from the node. * * @param NodeInterface $node * * @return AddNodeOperation[] Additional operations that the client must execute for autocreated nodes. */ public function process(NodeInterface $node) { $this->validateNamespace($node->getName()); $nodeDef = $node->getPrimaryNodeType(); $nodeTypes = $node->getMixinNodeTypes(); array_unshift($nodeTypes, $nodeDef); $additionalOperations = array(); foreach ($nodeTypes as $nodeType) { /* @var $nodeType NodeTypeDefinitionInterface */ $additionalOperations = array_merge($additionalOperations, $this->processNodeWithType($node, $nodeType)); } return $additionalOperations; }
/** * {@inheritdoc} */ public function getMixinNodeTypes() { return $this->node->getMixinNodeTypes(); }