1 package org.eclipse.aether.internal.impl.collect;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.DefaultRepositorySystemSession;
23 import org.eclipse.aether.artifact.DefaultArtifact;
24 import org.eclipse.aether.graph.Dependency;
25 import org.eclipse.aether.internal.test.util.TestVersion;
26 import org.eclipse.aether.resolution.VersionRangeRequest;
27 import org.eclipse.aether.resolution.VersionRangeResult;
28 import org.eclipse.aether.version.Version;
29 import org.junit.Test;
30
31 import java.util.Arrays;
32 import java.util.Collections;
33 import java.util.Iterator;
34 import java.util.NoSuchElementException;
35
36 import static org.junit.Assert.assertEquals;
37 import static org.junit.Assert.assertTrue;
38
39 public class DefaultVersionFilterContextTest
40 {
41 private static final Dependency FOO_DEPENDENCY = new Dependency( new DefaultArtifact( "group-id:foo:1.0" ), "test" );
42 private static final Dependency BAR_DEPENDENCY = new Dependency( new DefaultArtifact( "group-id:bar:1.0" ), "test" );
43
44 @Test
45 public void iteratorOneItem()
46 {
47 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
48 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
49 result.addVersion( new TestVersion( "1.0" ) );
50 context.set( FOO_DEPENDENCY, result );
51
52 Iterator<Version> iterator = context.iterator();
53 assertTrue( iterator.hasNext() );
54 assertEquals( new TestVersion( "1.0" ), iterator.next() );
55 }
56
57 @Test
58 public void getCountOneItem()
59 {
60 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
61 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
62 result.addVersion( new TestVersion( "1.0" ) );
63 context.set( FOO_DEPENDENCY, result );
64
65 assertEquals(1, context.getCount());
66 }
67
68 @Test
69 public void getOneItem()
70 {
71 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
72 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
73 result.addVersion( new TestVersion( "1.0" ) );
74 context.set( FOO_DEPENDENCY, result );
75
76 assertEquals( Collections.singletonList( new TestVersion( "1.0") ), context.get() );
77 }
78
79 @Test
80 public void iteratorDelete()
81 {
82 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
83 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
84 result.addVersion( new TestVersion( "1.0" ) );
85 context.set( FOO_DEPENDENCY, result );
86
87 Iterator<Version> iterator = context.iterator();
88 iterator.next();
89 iterator.remove();
90
91 assertEquals( 0, context.getCount() );
92 }
93
94 @Test(expected = NoSuchElementException.class)
95 public void nextBeyondEnd()
96 {
97 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
98 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
99 result.addVersion( new TestVersion( "1.0" ) );
100 context.set( FOO_DEPENDENCY, result );
101
102 Iterator<Version> iterator = context.iterator();
103 iterator.next();
104 iterator.next();
105 }
106
107 @Test
108 public void removeOneOfOne()
109 {
110 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
111 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
112 result.addVersion( new TestVersion( "1.0" ) );
113 context.set( FOO_DEPENDENCY, result );
114
115 Iterator<Version> iterator = context.iterator();
116 iterator.next();
117 iterator.remove();
118
119 assertEquals( Collections.emptyList(), context.get() );
120 }
121
122 @Test
123 public void removeOneOfTwo()
124 {
125 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
126 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
127 result.addVersion( new TestVersion( "1.0" ) );
128 result.addVersion( new TestVersion( "2.0" ) );
129 context.set( FOO_DEPENDENCY, result );
130
131 Iterator<Version> iterator = context.iterator();
132 iterator.next();
133 iterator.remove();
134
135 assertEquals( Collections.singletonList( new TestVersion( "2.0") ), context.get() );
136 }
137
138 @Test
139 public void removeOneOfThree()
140 {
141 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
142 VersionRangeResult result = new VersionRangeResult( new VersionRangeRequest() );
143 result.addVersion( new TestVersion( "1.0" ) );
144 result.addVersion( new TestVersion( "2.0" ) );
145 result.addVersion( new TestVersion( "3.0" ) );
146 context.set( FOO_DEPENDENCY, result );
147
148 Iterator<Version> iterator = context.iterator();
149 iterator.next();
150 iterator.remove();
151
152 assertEquals( Arrays.asList( new TestVersion( "2.0" ), new TestVersion( "3.0" ) ), context.get() );
153 }
154
155 @Test
156 public void setTwice()
157 {
158 DefaultVersionFilterContext context = new DefaultVersionFilterContext( new DefaultRepositorySystemSession() );
159 VersionRangeResult fooResult = new VersionRangeResult( new VersionRangeRequest() );
160 fooResult.addVersion( new TestVersion( "1.0" ) );
161 context.set( FOO_DEPENDENCY, fooResult );
162
163 VersionRangeResult barResult = new VersionRangeResult( new VersionRangeRequest() );
164 barResult.addVersion( new TestVersion( "1.0" ) );
165 barResult.addVersion( new TestVersion( "2.0" ) );
166 context.set( BAR_DEPENDENCY, barResult );
167
168 assertEquals( Arrays.asList( new TestVersion( "1.0" ), new TestVersion( "2.0" ) ), context.get() );
169 }
170 }