1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.metadata;
20
21 import javax.inject.Inject;
22
23 import org.apache.maven.artifact.ArtifactScopeEnum;
24 import org.codehaus.plexus.testing.PlexusTest;
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27
28 import static org.junit.jupiter.api.Assertions.assertEquals;
29 import static org.junit.jupiter.api.Assertions.assertNotNull;
30
31
32
33
34
35 @PlexusTest
36 @Deprecated
37 class DefaultGraphConflictResolverTest {
38 @Inject
39 GraphConflictResolver resolver;
40
41 MetadataGraph graph;
42
43 MetadataGraphVertex v1;
44 MetadataGraphVertex v2;
45 MetadataGraphVertex v3;
46 MetadataGraphVertex v4;
47
48
49 @BeforeEach
50 void setUp() throws Exception {
51
52
53
54
55
56
57 graph = new MetadataGraph(4, 3);
58 v1 = graph.addVertex(new ArtifactMetadata("g", "a1", "1.0"));
59 graph.setEntry(v1);
60 v2 = graph.addVertex(new ArtifactMetadata("g", "a2", "1.0"));
61 v3 = graph.addVertex(new ArtifactMetadata("g", "a3", "1.0"));
62 v4 = graph.addVertex(new ArtifactMetadata("g", "a4", "1.0"));
63
64
65 graph.addEdge(v1, v2, new MetadataGraphEdge("1.1", true, null, null, 2, 1));
66 graph.addEdge(v1, v2, new MetadataGraphEdge("1.2", true, null, null, 2, 2));
67
68
69 graph.addEdge(v1, v3, new MetadataGraphEdge("1.1", true, null, null, 2, 1));
70 graph.addEdge(v1, v3, new MetadataGraphEdge("1.2", true, null, null, 4, 2));
71
72
73 graph.addEdge(v3, v4, new MetadataGraphEdge("1.1", true, ArtifactScopeEnum.runtime, null, 2, 1));
74 graph.addEdge(v3, v4, new MetadataGraphEdge("1.2", true, ArtifactScopeEnum.provided, null, 2, 2));
75 }
76
77
78 @Test
79 void testCompileResolution() throws Exception {
80 MetadataGraph res;
81
82 res = resolver.resolveConflicts(graph, ArtifactScopeEnum.compile);
83
84 assertNotNull(res, "null graph after resolver");
85 assertNotNull(res.getVertices(), "no vertices in the resulting graph after resolver");
86
87 assertNotNull(res.getExcidentEdges(v1), "no edges in the resulting graph after resolver");
88
89 assertEquals(4, res.getVertices().size(), "wrong # of vertices in the resulting graph after resolver");
90 assertEquals(
91 2,
92 res.getExcidentEdges(v1).size(),
93 "wrong # of excident edges in the resulting graph entry after resolver");
94
95 assertEquals(
96 1,
97 res.getIncidentEdges(v2).size(),
98 "wrong # of v2 incident edges in the resulting graph after resolver");
99 assertEquals(
100 "1.2",
101 res.getIncidentEdges(v2).get(0).getVersion(),
102 "wrong edge v1-v2 in the resulting graph after resolver");
103
104 assertEquals(
105 1, res.getIncidentEdges(v3).size(), "wrong # of edges v1-v3 in the resulting graph after resolver");
106 assertEquals(
107 "1.1",
108 res.getIncidentEdges(v3).get(0).getVersion(),
109 "wrong edge v1-v3 in the resulting graph after resolver");
110
111 assertEquals(
112 1, res.getIncidentEdges(v4).size(), "wrong # of edges v3-v4 in the resulting graph after resolver");
113 assertEquals(
114 "1.2",
115 res.getIncidentEdges(v4).get(0).getVersion(),
116 "wrong edge v3-v4 in the resulting graph after resolver");
117 }
118
119
120 @Test
121 void testRuntimeResolution() throws Exception {
122 MetadataGraph res;
123
124 res = resolver.resolveConflicts(graph, ArtifactScopeEnum.runtime);
125
126 assertNotNull(res, "null graph after resolver");
127 assertNotNull(res.getVertices(), "no vertices in the resulting graph after resolver");
128 assertNotNull(res.getExcidentEdges(v1), "no edges in the resulting graph after resolver");
129
130 assertEquals(4, res.getVertices().size(), "wrong # of vertices in the resulting graph after resolver");
131 assertEquals(
132 2,
133 res.getExcidentEdges(v1).size(),
134 "wrong # of excident edges in the resulting graph entry after resolver");
135
136 assertEquals(
137 1,
138 res.getIncidentEdges(v2).size(),
139 "wrong # of v2 incident edges in the resulting graph after resolver");
140 assertEquals(
141 "1.2",
142 res.getIncidentEdges(v2).get(0).getVersion(),
143 "wrong edge v1-v2 in the resulting graph after resolver");
144
145 assertEquals(
146 1, res.getIncidentEdges(v3).size(), "wrong # of edges v1-v3 in the resulting graph after resolver");
147 assertEquals(
148 "1.1",
149 res.getIncidentEdges(v3).get(0).getVersion(),
150 "wrong edge v1-v3 in the resulting graph after resolver");
151
152 assertEquals(
153 1, res.getIncidentEdges(v4).size(), "wrong # of edges v3-v4 in the resulting graph after resolver");
154 assertEquals(
155 "1.1",
156 res.getIncidentEdges(v4).get(0).getVersion(),
157 "wrong edge v3-v4 in the resulting graph after resolver");
158 }
159
160
161 @Test
162 void testTestResolution() throws Exception {
163 MetadataGraph res;
164
165 res = resolver.resolveConflicts(graph, ArtifactScopeEnum.test);
166
167 assertNotNull(res, "null graph after resolver");
168 assertNotNull(res.getVertices(), "no vertices in the resulting graph after resolver");
169 assertNotNull(res.getExcidentEdges(v1), "no edges in the resulting graph after resolver");
170
171 assertEquals(4, res.getVertices().size(), "wrong # of vertices in the resulting graph after resolver");
172 assertEquals(
173 2,
174 res.getExcidentEdges(v1).size(),
175 "wrong # of excident edges in the resulting graph entry after resolver");
176
177 assertEquals(
178 1,
179 res.getIncidentEdges(v2).size(),
180 "wrong # of v2 incident edges in the resulting graph after resolver");
181 assertEquals(
182 "1.2",
183 res.getIncidentEdges(v2).get(0).getVersion(),
184 "wrong edge v1-v2 in the resulting graph after resolver");
185
186 assertEquals(
187 1, res.getIncidentEdges(v3).size(), "wrong # of edges v1-v3 in the resulting graph after resolver");
188 assertEquals(
189 "1.1",
190 res.getIncidentEdges(v3).get(0).getVersion(),
191 "wrong edge v1-v3 in the resulting graph after resolver");
192
193 assertEquals(
194 1, res.getIncidentEdges(v4).size(), "wrong # of edges v3-v4 in the resulting graph after resolver");
195 assertEquals(
196 "1.2",
197 res.getIncidentEdges(v4).get(0).getVersion(),
198 "wrong edge v3-v4 in the resulting graph after resolver");
199 }
200
201
202 }