/**
  * @test
  */
 public function adoptNodeWithExistingNodeMatchingTargetDimensionValuesWillReuseNode()
 {
     $this->contentDimensionRepository->setDimensionsConfiguration(['test' => ['default' => 'a']]);
     $variantContextA = $this->contextFactory->create(['dimensions' => ['test' => ['a']], 'targetDimensions' => ['test' => 'a']]);
     $variantContextB = $this->contextFactory->create(['dimensions' => ['test' => ['b', 'a']], 'targetDimensions' => ['test' => 'b']]);
     $variantContextA->getRootNode()->getNodeData()->createNodeData('test', null, null, $variantContextA->getWorkspace(), ['test' => ['a', 'b']]);
     $this->persistenceManager->persistAll();
     $variantNodeA = $variantContextA->getRootNode()->getNode('test');
     $variantNodeB = $variantContextB->adoptNode($variantNodeA);
     $this->assertSame($variantNodeA->getDimensions(), $variantNodeB->getDimensions());
 }
 /**
  * @test
  */
 public function nodesInPathAreHiddenIfBetterVariantInOtherPathExists()
 {
     $this->contentDimensionRepository->setDimensionsConfiguration(['test' => ['default' => 'a']]);
     $variantContextA = $this->contextFactory->create(['dimensions' => ['test' => ['a']], 'targetDimensions' => ['test' => 'a']]);
     $container1 = $variantContextA->getRootNode()->createNode('container1');
     $variantContextA->getRootNode()->createNode('container2');
     $container1->createNode('node-with-variant');
     $variantContextB = $this->contextFactory->create(['dimensions' => ['test' => ['b', 'a']], 'targetDimensions' => ['test' => 'b']]);
     $nodeWithVariantOriginal = $variantContextB->getNode('/container1/node-with-variant');
     $variantContextB->getNode('/container2')->createNode('node-with-variant', null, $nodeWithVariantOriginal->getIdentifier());
     $this->persistenceManager->persistAll();
     $this->contextFactory->reset();
     $variantContextB = $this->contextFactory->create(['dimensions' => ['test' => ['b', 'a']], 'targetDimensions' => ['test' => 'b']]);
     // Both containers should be available due to fallbacks
     $this->assertCount(2, $variantContextB->getRootNode()->getChildNodes());
     // This should NOT find the node created in variantContextA as
     // a better matching (with "b" dimension value) variant (same identifier) exists in container two
     $this->assertCount(0, $variantContextB->getNode('/container1')->getChildNodes());
     // This is the better matching variant and should be found.
     $this->assertCount(1, $variantContextB->getNode('/container2')->getChildNodes());
 }
 /**
  * @return void
  */
 public function tearDown()
 {
     parent::tearDown();
     $this->inject($this->contextFactory, 'contextInstances', array());
     $this->contentDimensionRepository->setDimensionsConfiguration(array());
 }