You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2019/05/12 17:47:22 UTC

[maven-resolver] 01/01: Add tests for MRESOLVER-62 (currently inversed)

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MRESOLVER-62_tests
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit ae2663566283c31c719eca593e58ac468a125b5c
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun May 12 19:45:56 2019 +0200

    Add tests for MRESOLVER-62 (currently inversed)
---
 .../transformer/NearestVersionSelectorTest.java    | 33 ++++++++++++++++++++--
 .../cycle-underneath-removed-node.txt              | 20 +++++++++++++
 .../cycle-underneath-removed-node2.txt             | 17 +++++++++++
 3 files changed, 68 insertions(+), 2 deletions(-)

diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelectorTest.java
index b71adab..ab40650 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelectorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelectorTest.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.util.graph.transformer;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -82,6 +82,35 @@ public class NearestVersionSelectorTest
         assertEquals( 5, trail.size() );
     }
 
+    // This test must be assertTrue() as soon as MRESOLVER-62 is fixed
+    @Test
+    public void testCycleUnderneathRemovedNode()
+        throws Exception
+    {
+        DependencyNode root = parseResource("cycle-underneath-removed-node.txt" );
+
+        assertSame( root, transform( root ) );
+        List<DependencyNode> trail = find( root, "y" );
+        assertEquals( 6, trail.size() );
+
+        // Node y should have children removed
+        assertFalse( trail.get(0).getChildren().isEmpty() );
+    }
+
+    // This test must be assertFalse() as soon as MRESOLVER-62 is fixed
+    @Test
+    public void testCycleUnderneathRemovedNode2()
+        throws Exception
+    {
+        DependencyNode root = parseResource("cycle-underneath-removed-node2.txt" );
+
+        assertSame( root, transform( root ) );
+
+        // Node x should be present
+        List<DependencyNode> trail = find( root, "x" );
+        assertTrue( trail.isEmpty() );
+    }
+
     @Test
     public void testViolationOfHardConstraintFallsBackToNearestSeenNotFirstSeen()
         throws Exception
diff --git a/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node.txt b/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node.txt
new file mode 100644
index 0000000..5406c72
--- /dev/null
+++ b/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node.txt
@@ -0,0 +1,20 @@
+# This graph has a cycle (x <-> y) underneath a node that is removed from the tree (a:1).
+# However, this cycle also appears as a child of another cycle. Specifically, (q <-> p) depends on d, which depends on x.
+# When conflicts are resolved, the cycle between x and y should be broken.
+(null)
++- gid:a:1
+|  \- gid:x:1                  (x)
+|     \- gid:y:1
+|        \- ^x
++- gid:a:2
++- gid:b:1
+|  +- gid:c:1
+|     \- gid:d:1               (d)
+|        \- ^x
+\- gid:m:1
+   \- gid:n:1
+      +- gid:p:1
+      |  \- gid:q:1
+      \- gid:q:2
+         \- gid:p:2
+            \- ^d
\ No newline at end of file
diff --git a/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node2.txt b/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node2.txt
new file mode 100644
index 0000000..23e4a91
--- /dev/null
+++ b/maven-resolver-util/src/test/resources/transformer/version-resolver/cycle-underneath-removed-node2.txt
@@ -0,0 +1,17 @@
+# This graph has a cycle (x <-> y) underneath a node that is removed from the tree (a:1).
+# However, this cycle also appears as a child of another cycle.
+# Specifically, q:2 depends on x and is part of a cycle (p <-> q).
+# When conflicts are resolved, x should be included.
+(null)
++- gid:a:1
+|  \- gid:x:1                  (x)
+|     \- gid:y:1
+|        \- ^x
++- gid:a:2
+\- gid:m:1
+   \- gid:n:1
+      +- gid:p:1
+      |  \- gid:q:1
+      \- gid:q:2
+         |- gid:p:2
+         \- ^x
\ No newline at end of file