/** * @test */ public function similarizeClearsPropertiesBeforeAddingNewOnes() { /** @var $sourceNode NodeData */ $sourceNode = $this->getAccessibleMock(NodeData::class, array('addOrUpdate'), array('/foo/bar', $this->mockWorkspace)); $this->inject($sourceNode, 'nodeTypeManager', $this->mockNodeTypeManager); $sourceNode->_set('nodeDataRepository', $this->createMock(RepositoryInterface::class)); $this->nodeData->setProperty('someProperty', 'somePropertyValue'); $this->nodeData->setProperty('someOtherProperty', 'someOtherPropertyValue'); $sourceNode->setProperty('newProperty', 'newPropertyValue'); $sourceNode->setProperty('someProperty', 'someOverriddenPropertyValue'); $this->nodeData->similarize($sourceNode); $expectedProperties = array('newProperty' => 'newPropertyValue', 'someProperty' => 'someOverriddenPropertyValue'); $this->assertEquals($expectedProperties, $this->nodeData->getProperties()); }