public function moveBeforeMovesNodesBeforeOthersOnDifferentLevelWithoutPersistAll()
{
$rootNode = $this->context->getRootNode();
$parentNode = $rootNode->createNode('parent-node');
$parentNode->createNode('child-node-a');
$childNodeB = $parentNode->createNode('child-node-b');
$childNodeB1 = $childNodeB->createNode('child-node-b1');
$childNodeC = $parentNode->createNode('child-node-c');
$childNodeC1 = $childNodeC->createNode('child-node-c1');
$childNodeB->moveBefore($childNodeC1);
$this->assertNull($parentNode->getNode('child-node-b'));
$this->assertSame($childNodeB, $childNodeC->getNode('child-node-b'));
$this->assertSame($childNodeB1, $childNodeC->getNode('child-node-b')->getNode('child-node-b1'));
$expectedChildNodes = [$childNodeB, $childNodeC1];
$actualChildNodes = $childNodeC->getChildNodes();
$this->assertSameOrder($expectedChildNodes, array_values($actualChildNodes));
}