diff --git a/tests/Doctrine/Tests/ORM/CommitOrderCalculatorTest.php b/tests/Doctrine/Tests/ORM/CommitOrderCalculatorTest.php
index 8c9ec26c4..c967beb8b 100644
--- a/tests/Doctrine/Tests/ORM/CommitOrderCalculatorTest.php
+++ b/tests/Doctrine/Tests/ORM/CommitOrderCalculatorTest.php
@@ -67,6 +67,39 @@ class CommitOrderCalculatorTest extends OrmTestCase
 
         $this->assertSame($correctOrder, $sorted);
     }
+
+    public function testCommitOrdering3()
+    {
+        // this test corresponds to the GH7259Test::testPersistFileBeforeVersion functional test
+        $class1 = new ClassMetadata(NodeClass1::class);
+        $class2 = new ClassMetadata(NodeClass2::class);
+        $class3 = new ClassMetadata(NodeClass3::class);
+        $class4 = new ClassMetadata(NodeClass4::class);
+
+        $this->_calc->addNode($class1->name, $class1);
+        $this->_calc->addNode($class2->name, $class2);
+        $this->_calc->addNode($class3->name, $class3);
+        $this->_calc->addNode($class4->name, $class4);
+
+        $this->_calc->addDependency($class4->name, $class1->name, 1);
+        $this->_calc->addDependency($class1->name, $class2->name, 1);
+        $this->_calc->addDependency($class4->name, $class3->name, 1);
+        $this->_calc->addDependency($class1->name, $class4->name, 0);
+
+        $sorted = $this->_calc->sort();
+
+        // There is only multiple valid ordering for this constellation, but
+        // the class4, class1, class2 ordering is important to break the cycle
+        // on the nullable link.
+        $correctOrders = [
+            [$class4, $class1, $class2, $class3],
+            [$class4, $class1, $class3, $class2],
+            [$class4, $class3, $class1, $class2],
+        ];
+
+        // We want to perform a strict comparison of the array
+        $this->assertContains($sorted, $correctOrders, '', false, true, true);
+    }
 }
 
 class NodeClass1 {}