1 package org.eclipse.aether.util.graph.transformer;
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.*;
23
24 import org.eclipse.aether.collection.DependencyGraphTransformer;
25 import org.eclipse.aether.graph.DependencyNode;
26 import org.eclipse.aether.internal.test.util.DependencyGraphParser;
27 import org.junit.Test;
28
29 public class SimpleOptionalitySelectorTest
30 extends AbstractDependencyGraphTransformerTest
31 {
32
33 @Override
34 protected DependencyGraphTransformer newTransformer()
35 {
36 return new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
37 new SimpleOptionalitySelector(), new JavaScopeDeriver() );
38 }
39
40 @Override
41 protected DependencyGraphParser newParser()
42 {
43 return new DependencyGraphParser( "transformer/optionality-selector/" );
44 }
45
46 @Test
47 public void testDeriveOptionality()
48 throws Exception
49 {
50 DependencyNode root = parseResource( "derive.txt" );
51 assertSame( root, transform( root ) );
52
53 assertEquals( 2, root.getChildren().size() );
54 assertEquals( true, root.getChildren().get( 0 ).getDependency().isOptional() );
55 assertEquals( true, root.getChildren().get( 0 ).getChildren().get( 0 ).getDependency().isOptional() );
56 assertEquals( false, root.getChildren().get( 1 ).getDependency().isOptional() );
57 assertEquals( false, root.getChildren().get( 1 ).getChildren().get( 0 ).getDependency().isOptional() );
58 }
59
60 @Test
61 public void testResolveOptionalityConflict_NonOptionalWins()
62 throws Exception
63 {
64 DependencyNode root = parseResource( "conflict.txt" );
65 assertSame( root, transform( root ) );
66
67 assertEquals( 2, root.getChildren().size() );
68 assertEquals( true, root.getChildren().get( 0 ).getDependency().isOptional() );
69 assertEquals( false, root.getChildren().get( 0 ).getChildren().get( 0 ).getDependency().isOptional() );
70 }
71
72 @Test
73 public void testResolveOptionalityConflict_DirectDeclarationWins()
74 throws Exception
75 {
76 DependencyNode root = parseResource( "conflict-direct-dep.txt" );
77 assertSame( root, transform( root ) );
78
79 assertEquals( 2, root.getChildren().size() );
80 assertEquals( true, root.getChildren().get( 1 ).getDependency().isOptional() );
81 }
82
83 }