1 package org.apache.maven.shared.artifact.filter.resolve.transform;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.junit.Assert.assertEquals;
23
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.Collections;
27
28 import org.apache.maven.shared.artifact.filter.resolve.Node;
29 import org.eclipse.aether.artifact.DefaultArtifact;
30 import org.eclipse.aether.graph.DefaultDependencyNode;
31 import org.eclipse.aether.graph.Dependency;
32 import org.eclipse.aether.graph.DependencyNode;
33 import org.eclipse.aether.graph.Exclusion;
34 import org.junit.Test;
35
36 public class EclipseAetherNodeTest
37 {
38 @Test
39 public void testGAV()
40 {
41 Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null ) );
42
43 org.apache.maven.model.Dependency mavenDependency = node.getDependency();
44
45 assertEquals( "g", mavenDependency.getGroupId() );
46 assertEquals( "a", mavenDependency.getArtifactId() );
47 assertEquals( "v", mavenDependency.getVersion() );
48 assertEquals( "", mavenDependency.getClassifier() );
49 assertEquals( null, mavenDependency.getType() );
50 assertEquals( "", mavenDependency.getScope() );
51 }
52
53 @Test
54 public void testClassifier()
55 {
56 Node node = new EclipseAetherNode( newDependencyNode( "g:a::c:v", null ) );
57
58 org.apache.maven.model.Dependency mavenDependency = node.getDependency();
59
60 assertEquals( "g", mavenDependency.getGroupId() );
61 assertEquals( "a", mavenDependency.getArtifactId() );
62 assertEquals( "v", mavenDependency.getVersion() );
63 assertEquals( "c", mavenDependency.getClassifier() );
64 assertEquals( null, mavenDependency.getType() );
65 assertEquals( "", mavenDependency.getScope() );
66 }
67
68 @Test
69 public void testScope()
70 {
71 Node node = new EclipseAetherNode( newDependencyNode( "g:a:c:v", "s" ) );
72
73 org.apache.maven.model.Dependency mavenDependency = node.getDependency();
74
75 assertEquals( "g", mavenDependency.getGroupId() );
76 assertEquals( "a", mavenDependency.getArtifactId() );
77 assertEquals( "v", mavenDependency.getVersion() );
78 assertEquals( "", mavenDependency.getClassifier() );
79 assertEquals( null, mavenDependency.getType() );
80 assertEquals( "s", mavenDependency.getScope() );
81 }
82
83 @Test
84 public void testOptional()
85 {
86 Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, (Boolean) null ) );
87
88 assertEquals( null, node.getDependency().getOptional() );
89 assertEquals( false, node.getDependency().isOptional() );
90
91 node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, true ) );
92 assertEquals( "true", node.getDependency().getOptional() );
93 assertEquals( true, node.getDependency().isOptional() );
94
95 node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, false ) );
96 assertEquals( "false", node.getDependency().getOptional() );
97 assertEquals( false, node.getDependency().isOptional() );
98 }
99
100 @Test
101 public void testExclusions()
102 {
103 Node node = new EclipseAetherNode( newDependencyNode( "g:a:v", null, Collections.singletonList( "eg:ea" ) ) );
104 assertEquals( 1, node.getDependency().getExclusions().size() );
105
106 org.apache.maven.model.Exclusion mavenExclusion = node.getDependency().getExclusions().get( 0 );
107 assertEquals( "eg", mavenExclusion.getGroupId() );
108 assertEquals( "ea", mavenExclusion.getArtifactId() );
109 }
110
111 private DependencyNode newDependencyNode( String coor, String scope )
112 {
113 return new DefaultDependencyNode( new Dependency( new DefaultArtifact( coor ), scope ) );
114 }
115
116 private DependencyNode newDependencyNode( String coor, String scope, Boolean optional )
117 {
118 return new DefaultDependencyNode( new Dependency( new DefaultArtifact( coor ), scope, optional ) );
119 }
120
121 private DependencyNode newDependencyNode( String coor, String scope, Collection<String> exclusions )
122 {
123 Dependency dependency = new Dependency( new DefaultArtifact( coor ), scope );
124
125 Collection<Exclusion> aetherExclusions = new ArrayList<Exclusion>( exclusions.size() );
126 for ( String exclusion : exclusions )
127 {
128 String[] ga = exclusion.split( ":" );
129 aetherExclusions.add( new Exclusion( ga[0], ga[1], null, null ) );
130 }
131 dependency = dependency.setExclusions( aetherExclusions );
132
133 return new DefaultDependencyNode( dependency );
134 }
135
136 }