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