1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
package org.xwiki.extension.repository.installed; |
21 |
|
|
22 |
|
import java.util.ArrayList; |
23 |
|
import java.util.Arrays; |
24 |
|
import java.util.Collection; |
25 |
|
import java.util.Collections; |
26 |
|
import java.util.HashMap; |
27 |
|
import java.util.Map; |
28 |
|
|
29 |
|
import org.junit.Before; |
30 |
|
import org.junit.Rule; |
31 |
|
import org.junit.Test; |
32 |
|
import org.xwiki.extension.DefaultExtensionDependency; |
33 |
|
import org.xwiki.extension.Extension; |
34 |
|
import org.xwiki.extension.ExtensionDependency; |
35 |
|
import org.xwiki.extension.ExtensionId; |
36 |
|
import org.xwiki.extension.InstallException; |
37 |
|
import org.xwiki.extension.InstalledExtension; |
38 |
|
import org.xwiki.extension.LocalExtension; |
39 |
|
import org.xwiki.extension.ResolveException; |
40 |
|
import org.xwiki.extension.TestResources; |
41 |
|
import org.xwiki.extension.UninstallException; |
42 |
|
import org.xwiki.extension.handler.ExtensionHandler; |
43 |
|
import org.xwiki.extension.repository.ExtensionRepositoryManager; |
44 |
|
import org.xwiki.extension.repository.InstalledExtensionRepository; |
45 |
|
import org.xwiki.extension.repository.LocalExtensionRepository; |
46 |
|
import org.xwiki.extension.repository.LocalExtensionRepositoryException; |
47 |
|
import org.xwiki.extension.repository.internal.core.CoreExtensionScanner; |
48 |
|
import org.xwiki.extension.repository.result.IterableResult; |
49 |
|
import org.xwiki.extension.repository.search.ExtensionQuery; |
50 |
|
import org.xwiki.extension.repository.search.ExtensionQuery.COMPARISON; |
51 |
|
import org.xwiki.extension.repository.search.SearchException; |
52 |
|
import org.xwiki.extension.test.MockitoRepositoryUtilsRule; |
53 |
|
import org.xwiki.extension.test.TestExtensionHandler; |
54 |
|
import org.xwiki.extension.version.internal.DefaultVersionConstraint; |
55 |
|
import org.xwiki.test.annotation.AfterComponent; |
56 |
|
import org.xwiki.test.annotation.AllComponents; |
57 |
|
|
58 |
|
import static org.junit.Assert.assertEquals; |
59 |
|
import static org.junit.Assert.assertFalse; |
60 |
|
import static org.junit.Assert.assertNotNull; |
61 |
|
import static org.junit.Assert.assertNull; |
62 |
|
import static org.junit.Assert.assertSame; |
63 |
|
import static org.junit.Assert.assertTrue; |
64 |
|
import static org.junit.Assert.fail; |
65 |
|
|
66 |
|
@AllComponents |
|
|
| 98.1% |
Uncovered Elements: 5 (268) |
Complexity: 26 |
Complexity Density: 0.11 |
|
67 |
|
public class DefaultInstalledExtensionRepositoryTest |
68 |
|
{ |
69 |
|
@Rule |
70 |
|
public MockitoRepositoryUtilsRule repositoryUtil = new MockitoRepositoryUtilsRule(); |
71 |
|
|
72 |
|
private InstalledExtensionRepository installedExtensionRepository; |
73 |
|
|
74 |
|
private LocalExtensionRepository localExtensionRepository; |
75 |
|
|
76 |
|
private ExtensionRepositoryManager repositoryManager; |
77 |
|
|
78 |
|
private TestResources resources; |
79 |
|
|
80 |
|
private TestExtensionHandler handler; |
81 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
82 |
17 |
@AfterComponent... |
83 |
|
public void afterComponent() throws Exception |
84 |
|
{ |
85 |
|
|
86 |
17 |
this.repositoryUtil.getComponentManager().registerMockComponent(CoreExtensionScanner.class); |
87 |
|
} |
88 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
89 |
17 |
@Before... |
90 |
|
public void setUp() throws Exception |
91 |
|
{ |
92 |
|
|
93 |
|
|
94 |
17 |
this.installedExtensionRepository = |
95 |
|
this.repositoryUtil.getComponentManager().getInstance(InstalledExtensionRepository.class); |
96 |
17 |
this.localExtensionRepository = |
97 |
|
this.repositoryUtil.getComponentManager().getInstance(LocalExtensionRepository.class); |
98 |
17 |
this.repositoryManager = |
99 |
|
this.repositoryUtil.getComponentManager().getInstance(ExtensionRepositoryManager.class); |
100 |
17 |
this.handler = this.repositoryUtil.getComponentManager().getInstance(ExtensionHandler.class, "test"); |
101 |
|
|
102 |
|
|
103 |
|
|
104 |
17 |
this.resources = new TestResources(); |
105 |
17 |
this.resources.init(this.installedExtensionRepository); |
106 |
|
} |
107 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
|
108 |
1 |
private void install(ExtensionId extensionId)... |
109 |
|
throws ResolveException, LocalExtensionRepositoryException, InstallException |
110 |
|
{ |
111 |
1 |
Extension extension = this.repositoryManager.resolve(extensionId); |
112 |
|
|
113 |
|
|
114 |
|
|
115 |
1 |
this.localExtensionRepository.storeExtension(extension); |
116 |
|
|
117 |
1 |
LocalExtension localExtension = this.localExtensionRepository.resolve(extensionId); |
118 |
|
|
119 |
1 |
assertEquals(extensionId, localExtension.getId()); |
120 |
|
|
121 |
|
|
122 |
|
|
123 |
1 |
this.installedExtensionRepository.installExtension(localExtension, null, false); |
124 |
|
} |
125 |
|
|
126 |
|
|
127 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (71) |
Complexity: 1 |
Complexity Density: 0.01 |
1PASS
|
|
128 |
1 |
@Test... |
129 |
|
public void testInit() |
130 |
|
{ |
131 |
1 |
assertTrue(this.installedExtensionRepository.countExtensions() > 0); |
132 |
|
|
133 |
|
|
134 |
1 |
InstalledExtension extension = |
135 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ONNAMESPACE_ID); |
136 |
|
|
137 |
1 |
assertNotNull(extension); |
138 |
1 |
assertEquals(TestResources.INSTALLED_ONNAMESPACE_ID, extension.getId()); |
139 |
|
|
140 |
1 |
extension = this.installedExtensionRepository |
141 |
|
.getInstalledExtension(TestResources.INSTALLED_ONNAMESPACE_ID.getId(), "namespace"); |
142 |
|
|
143 |
1 |
assertNotNull(extension); |
144 |
1 |
assertEquals(TestResources.INSTALLED_ONNAMESPACE_ID, extension.getId()); |
145 |
1 |
assertTrue(extension.isValid("namespace")); |
146 |
|
|
147 |
|
|
148 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID); |
149 |
|
|
150 |
1 |
assertNotNull(extension); |
151 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
152 |
|
|
153 |
1 |
extension = |
154 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), "namespace"); |
155 |
|
|
156 |
1 |
assertNotNull(extension); |
157 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
158 |
1 |
assertTrue(this.handler.getExtensions().get(null).contains(extension)); |
159 |
1 |
assertFalse(this.handler.getExtensions().get("namespace").contains(extension)); |
160 |
1 |
assertSame(extension, |
161 |
|
this.installedExtensionRepository.getInstalledExtension("installedextension", "namespace")); |
162 |
|
|
163 |
|
|
164 |
1 |
extension = this.installedExtensionRepository |
165 |
|
.getInstalledExtension(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID); |
166 |
|
|
167 |
1 |
assertNotNull(extension); |
168 |
1 |
assertEquals(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID, extension.getId()); |
169 |
|
|
170 |
1 |
extension = this.installedExtensionRepository |
171 |
|
.getInstalledExtension(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID.getId(), "namespace"); |
172 |
|
|
173 |
1 |
assertNotNull(extension); |
174 |
1 |
assertEquals(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID, extension.getId()); |
175 |
1 |
assertFalse(this.handler.getExtensions().get(null).contains(extension)); |
176 |
1 |
assertTrue(this.handler.getExtensions().get("namespace").contains(extension)); |
177 |
|
|
178 |
|
|
179 |
1 |
extension = |
180 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_WITHFEATUREASDEPENDENCY_ID); |
181 |
|
|
182 |
1 |
assertNotNull(extension); |
183 |
1 |
assertEquals(TestResources.INSTALLED_WITHFEATUREASDEPENDENCY_ID, extension.getId()); |
184 |
|
|
185 |
1 |
extension = this.installedExtensionRepository |
186 |
|
.getInstalledExtension(TestResources.INSTALLED_WITHFEATUREASDEPENDENCY_ID.getId(), "namespace"); |
187 |
|
|
188 |
1 |
assertNotNull(extension); |
189 |
1 |
assertEquals(TestResources.INSTALLED_WITHFEATUREASDEPENDENCY_ID, extension.getId()); |
190 |
1 |
assertTrue(this.handler.getExtensions().get(null).contains(extension)); |
191 |
1 |
assertFalse(this.handler.getExtensions().get("namespace").contains(extension)); |
192 |
|
|
193 |
|
|
194 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_INVALID_ID); |
195 |
|
|
196 |
1 |
assertNotNull(extension); |
197 |
1 |
assertEquals(TestResources.INSTALLED_INVALID_ID, extension.getId()); |
198 |
1 |
assertFalse(extension.isValid(null)); |
199 |
1 |
assertFalse(this.handler.getExtensions().get(null).contains(extension)); |
200 |
1 |
assertFalse(this.handler.getExtensions().get("namespace").contains(extension)); |
201 |
|
|
202 |
|
|
203 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension("installedmanagedextension", null); |
204 |
|
|
205 |
1 |
assertNotNull(extension); |
206 |
1 |
assertTrue(extension.isValid(null)); |
207 |
1 |
assertEquals("2.0", extension.getId().getVersion().toString()); |
208 |
|
|
209 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension("installedmanagedextension", "namespace"); |
210 |
|
|
211 |
1 |
assertNotNull(extension); |
212 |
1 |
assertTrue(extension.isValid(null)); |
213 |
1 |
assertEquals("2.0", extension.getId().getVersion().toString()); |
214 |
|
|
215 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension("installedmanageddependency", null); |
216 |
|
|
217 |
1 |
assertNotNull(extension); |
218 |
1 |
assertTrue(extension.isValid(null)); |
219 |
1 |
assertEquals("2.0", extension.getId().getVersion().toString()); |
220 |
|
|
221 |
1 |
extension = |
222 |
|
this.installedExtensionRepository.getInstalledExtension("installedmanagedtransitivedependency", null); |
223 |
|
|
224 |
1 |
assertNotNull(extension); |
225 |
1 |
assertTrue(extension.isValid(null)); |
226 |
1 |
assertEquals("1.0", extension.getId().getVersion().toString()); |
227 |
|
|
228 |
|
|
229 |
|
|
230 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension("installedorphaneddependency", null); |
231 |
|
|
232 |
1 |
assertNotNull(extension); |
233 |
1 |
assertTrue(extension.isValid(null)); |
234 |
1 |
assertEquals("version", extension.getId().getVersion().toString()); |
235 |
|
|
236 |
|
|
237 |
|
|
238 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension("installedonseveralnamespaces", null); |
239 |
|
|
240 |
1 |
assertNull(extension); |
241 |
|
|
242 |
1 |
extension = |
243 |
|
this.installedExtensionRepository.getInstalledExtension("installedonseveralnamespaces", "namespace1"); |
244 |
|
|
245 |
1 |
assertNotNull(extension); |
246 |
1 |
assertTrue(extension.isValid("namespace1")); |
247 |
1 |
assertTrue(extension.isInstalled("namespace1")); |
248 |
1 |
assertEquals("version", extension.getId().getVersion().toString()); |
249 |
|
|
250 |
1 |
extension = |
251 |
|
this.installedExtensionRepository.getInstalledExtension("installedonseveralnamespaces", "namespace2"); |
252 |
|
|
253 |
1 |
assertNotNull(extension); |
254 |
1 |
assertTrue(extension.isValid("namespace2")); |
255 |
1 |
assertTrue(extension.isInstalled("namespace2")); |
256 |
1 |
assertEquals("version", extension.getId().getVersion().toString()); |
257 |
|
} |
258 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (9) |
Complexity: 1 |
Complexity Density: 0.11 |
1PASS
|
|
259 |
1 |
@Test... |
260 |
|
public void testGetLocalExtension() |
261 |
|
{ |
262 |
1 |
assertNull(this.installedExtensionRepository.getInstalledExtension("unexistingextension", null)); |
263 |
|
|
264 |
1 |
Extension extension = |
265 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), null); |
266 |
|
|
267 |
1 |
assertNotNull(extension); |
268 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
269 |
1 |
assertEquals("test", extension.getType()); |
270 |
1 |
assertEquals(Arrays.asList(TestResources.INSTALLED_ID.getId() + "-feature"), |
271 |
|
new ArrayList<String>(extension.getFeatures())); |
272 |
|
|
273 |
1 |
ExtensionDependency dependency = extension.getDependencies().iterator().next(); |
274 |
1 |
assertEquals(TestResources.INSTALLED_DEPENDENCY_ID.getId(), dependency.getId()); |
275 |
1 |
assertEquals(TestResources.INSTALLED_DEPENDENCY_ID.getVersion(), |
276 |
|
dependency.getVersionConstraint().getVersion()); |
277 |
|
} |
278 |
|
|
|
|
| 77.8% |
Uncovered Elements: 2 (9) |
Complexity: 3 |
Complexity Density: 0.33 |
1PASS
|
|
279 |
1 |
@Test... |
280 |
|
public void testResolve() throws ResolveException |
281 |
|
{ |
282 |
1 |
try { |
283 |
1 |
this.installedExtensionRepository.resolve(new ExtensionId("unexistingextension", "version")); |
284 |
|
|
285 |
0 |
fail("Resolve should have failed"); |
286 |
|
} catch (ResolveException expected) { |
287 |
|
|
288 |
|
} |
289 |
|
|
290 |
1 |
try { |
291 |
1 |
this.installedExtensionRepository |
292 |
|
.resolve(new ExtensionId(TestResources.INSTALLED_ID.getId(), "wrongversion")); |
293 |
|
|
294 |
0 |
fail("Resolve should have failed"); |
295 |
|
} catch (ResolveException expected) { |
296 |
|
|
297 |
|
} |
298 |
|
|
299 |
1 |
Extension extension = this.installedExtensionRepository.resolve(TestResources.INSTALLED_ID); |
300 |
|
|
301 |
1 |
assertNotNull(extension); |
302 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
303 |
|
} |
304 |
|
|
|
|
| 77.8% |
Uncovered Elements: 2 (9) |
Complexity: 3 |
Complexity Density: 0.33 |
1PASS
|
|
305 |
1 |
@Test... |
306 |
|
public void testResolveDependency() throws ResolveException |
307 |
|
{ |
308 |
1 |
try { |
309 |
1 |
this.installedExtensionRepository.resolve( |
310 |
|
new DefaultExtensionDependency("unexistingextension", new DefaultVersionConstraint("version"))); |
311 |
|
|
312 |
0 |
fail("Resolve should have failed"); |
313 |
|
} catch (ResolveException expected) { |
314 |
|
|
315 |
|
} |
316 |
|
|
317 |
1 |
try { |
318 |
1 |
this.installedExtensionRepository.resolve(new DefaultExtensionDependency(TestResources.INSTALLED_ID.getId(), |
319 |
|
new DefaultVersionConstraint("wrongversion"))); |
320 |
|
|
321 |
0 |
fail("Resolve should have failed"); |
322 |
|
} catch (ResolveException expected) { |
323 |
|
|
324 |
|
} |
325 |
|
|
326 |
1 |
Extension extension = |
327 |
|
this.installedExtensionRepository.resolve(new DefaultExtensionDependency(TestResources.INSTALLED_ID.getId(), |
328 |
|
new DefaultVersionConstraint(TestResources.INSTALLED_ID.getVersion().getValue()))); |
329 |
|
|
330 |
1 |
assertNotNull(extension); |
331 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
332 |
|
} |
333 |
|
|
|
|
| 75% |
Uncovered Elements: 1 (4) |
Complexity: 2 |
Complexity Density: 0.5 |
1PASS
|
|
334 |
1 |
@Test... |
335 |
|
public void testInstallTwice() throws InstallException |
336 |
|
{ |
337 |
|
|
338 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", |
339 |
|
!this.resources.installed.isDependency("namespace")); |
340 |
|
|
341 |
|
|
342 |
1 |
try { |
343 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", |
344 |
|
this.resources.installed.isDependency("namespace")); |
345 |
0 |
fail("Install should have failed"); |
346 |
|
} catch (InstallException expected) { |
347 |
|
|
348 |
|
} |
349 |
|
} |
350 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
1PASS
|
|
351 |
1 |
@Test... |
352 |
|
public void testStoreExtensionAndInstall() |
353 |
|
throws ResolveException, LocalExtensionRepositoryException, InstallException |
354 |
|
{ |
355 |
1 |
install(TestResources.REMOTE_SIMPLE_ID); |
356 |
|
|
357 |
1 |
assertNotNull( |
358 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.REMOTE_SIMPLE_ID.getId(), null)); |
359 |
1 |
assertNotNull(this.installedExtensionRepository.getInstalledExtension(TestResources.REMOTE_SIMPLE_ID.getId(), |
360 |
|
"namespace")); |
361 |
1 |
assertNotNull(this.installedExtensionRepository |
362 |
|
.getInstalledExtension(TestResources.REMOTE_SIMPLE_ID.getId() + "-feature", null)); |
363 |
|
} |
364 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (21) |
Complexity: 1 |
Complexity Density: 0.05 |
1PASS
|
|
365 |
1 |
@Test... |
366 |
|
public void testUninstallExtension() throws UninstallException, InstallException |
367 |
|
{ |
368 |
|
|
369 |
|
|
370 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, null); |
371 |
|
|
372 |
1 |
assertNull(this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), null)); |
373 |
1 |
assertNull( |
374 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), "namespace")); |
375 |
1 |
assertNull(this.installedExtensionRepository |
376 |
|
.getInstalledExtension(TestResources.INSTALLED_ID.getId() + "-feature", null)); |
377 |
1 |
assertNull(this.installedExtensionRepository |
378 |
|
.getInstalledExtension(TestResources.INSTALLED_ID.getId() + "-feature", "namespace")); |
379 |
|
|
380 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installedDependency, null); |
381 |
|
|
382 |
1 |
assertNull(this.installedExtensionRepository |
383 |
|
.getInstalledExtension(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null)); |
384 |
|
|
385 |
|
|
386 |
|
|
387 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installedDependency, "namespace", false); |
388 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", false); |
389 |
|
|
390 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, "namespace"); |
391 |
|
|
392 |
1 |
assertNull( |
393 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), "namespace")); |
394 |
1 |
assertNull(this.installedExtensionRepository |
395 |
|
.getInstalledExtension(TestResources.INSTALLED_ID.getId() + "-feature", "namespace")); |
396 |
|
|
397 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installedDependency, "namespace"); |
398 |
|
|
399 |
1 |
assertNull(this.installedExtensionRepository |
400 |
|
.getInstalledExtension(TestResources.INSTALLED_DEPENDENCY_ID.getId(), "namespace")); |
401 |
|
|
402 |
|
|
403 |
|
|
404 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installedDependency, null, false); |
405 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", false); |
406 |
|
|
407 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, "namespace"); |
408 |
|
|
409 |
1 |
assertNull( |
410 |
|
this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), "namespace")); |
411 |
1 |
assertNull(this.installedExtensionRepository |
412 |
|
.getInstalledExtension(TestResources.INSTALLED_ID.getId() + "-feature", "namespace")); |
413 |
|
|
414 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installedDependency, null); |
415 |
|
|
416 |
1 |
assertNull(this.installedExtensionRepository |
417 |
|
.getInstalledExtension(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null)); |
418 |
|
} |
419 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
1PASS
|
|
420 |
1 |
@Test... |
421 |
|
public void testBackwardDependenciesAfterInit() throws ResolveException |
422 |
|
{ |
423 |
|
|
424 |
1 |
assertEquals(Arrays.asList(this.resources.installedwithfeatureasdependency), |
425 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_ID.getId(), null)); |
426 |
1 |
assertEquals(new HashMap<String, Collection<InstalledExtension>>() |
427 |
|
{ |
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
428 |
1 |
{... |
429 |
1 |
put(null, Arrays |
430 |
|
.asList(DefaultInstalledExtensionRepositoryTest.this.resources.installedwithfeatureasdependency)); |
431 |
1 |
put("namespace", Arrays.asList( |
432 |
|
DefaultInstalledExtensionRepositoryTest.this.resources.installedonnemspacewithrootdependency)); |
433 |
|
} |
434 |
|
}, this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_ID)); |
435 |
|
|
436 |
|
|
437 |
1 |
assertEquals(Arrays.asList(this.resources.installed), this.installedExtensionRepository |
438 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null)); |
439 |
1 |
assertEquals(Collections.singletonMap(null, Arrays.asList(this.resources.installed)), |
440 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID)); |
441 |
|
|
442 |
|
|
443 |
1 |
assertEquals(Collections.EMPTY_MAP, this.installedExtensionRepository |
444 |
|
.getBackwardDependencies(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID)); |
445 |
1 |
assertEquals(Collections.EMPTY_LIST, this.installedExtensionRepository |
446 |
|
.getBackwardDependencies(TestResources.INSTALLED_ONNAMESPACEWITHROOTDEPENDENCY_ID.getId(), "namespace")); |
447 |
|
} |
448 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
449 |
1 |
@Test... |
450 |
|
public void testBackwardDependenciesAfterUninstall() throws ResolveException, UninstallException |
451 |
|
{ |
452 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, null); |
453 |
|
|
454 |
1 |
assertEquals(Collections.EMPTY_LIST, this.installedExtensionRepository |
455 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null)); |
456 |
|
} |
457 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
1PASS
|
|
458 |
1 |
@Test... |
459 |
|
public void testBackwardDependenciesWithExtensionAndDepOnRoot() throws ResolveException |
460 |
|
{ |
461 |
1 |
assertEquals(Arrays.asList(this.resources.installed), |
462 |
|
new ArrayList<InstalledExtension>(this.installedExtensionRepository |
463 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null))); |
464 |
|
|
465 |
1 |
assertEquals(Arrays.asList(), new ArrayList<InstalledExtension>(this.installedExtensionRepository |
466 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), "namespace"))); |
467 |
|
|
468 |
1 |
assertEquals(Arrays.asList(this.resources.installedwithfeatureasdependency), new ArrayList<InstalledExtension>( |
469 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_ID.getId(), null))); |
470 |
|
|
471 |
1 |
Map<String, Collection<InstalledExtension>> map = new HashMap<String, Collection<InstalledExtension>>(); |
472 |
1 |
map.put(null, Arrays.asList(this.resources.installed)); |
473 |
|
|
474 |
1 |
assertEquals(map, |
475 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID)); |
476 |
|
} |
477 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
1PASS
|
|
478 |
1 |
@Test... |
479 |
|
public void testBackwardDependenciesWithExtensionOnNamespaceAndDepOnNamespace() |
480 |
|
throws InstallException, ResolveException, UninstallException |
481 |
|
{ |
482 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, null); |
483 |
|
|
484 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", true); |
485 |
|
|
486 |
1 |
assertEquals(Collections.EMPTY_LIST, this.installedExtensionRepository |
487 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), null)); |
488 |
|
|
489 |
1 |
assertEquals(Arrays.asList(this.resources.installed), this.installedExtensionRepository |
490 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), "namespace")); |
491 |
|
|
492 |
1 |
assertEquals(Arrays.asList(this.resources.installedonnemspacewithrootdependency), |
493 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_ID.getId(), "namespace")); |
494 |
|
} |
495 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
1PASS
|
|
496 |
1 |
@Test... |
497 |
|
public void testBackwardDependenciesWithExtensionAndDepOnNamespace() |
498 |
|
throws InstallException, ResolveException, UninstallException |
499 |
|
{ |
500 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installed, null); |
501 |
1 |
this.installedExtensionRepository.uninstallExtension(this.resources.installedDependency, null); |
502 |
|
|
503 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installedDependency, "namespace", true); |
504 |
1 |
this.installedExtensionRepository.installExtension(this.resources.installed, "namespace", true); |
505 |
|
|
506 |
1 |
assertEquals(Arrays.asList(this.resources.installed), this.installedExtensionRepository |
507 |
|
.getBackwardDependencies(TestResources.INSTALLED_DEPENDENCY_ID.getId(), "namespace")); |
508 |
|
|
509 |
1 |
assertEquals(Arrays.asList(this.resources.installedonnemspacewithrootdependency), |
510 |
|
this.installedExtensionRepository.getBackwardDependencies(TestResources.INSTALLED_ID.getId(), "namespace")); |
511 |
|
} |
512 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (48) |
Complexity: 1 |
Complexity Density: 0.02 |
1PASS
|
|
513 |
1 |
@Test... |
514 |
|
public void testSearch() throws SearchException |
515 |
|
{ |
516 |
1 |
IterableResult<Extension> result = this.installedExtensionRepository.search(null, 0, -1); |
517 |
|
|
518 |
1 |
assertEquals(15, result.getTotalHits()); |
519 |
1 |
assertEquals(15, result.getSize()); |
520 |
1 |
assertEquals(0, result.getOffset()); |
521 |
|
|
522 |
1 |
result = this.installedExtensionRepository.search("", 0, -1); |
523 |
|
|
524 |
1 |
assertEquals(15, result.getTotalHits()); |
525 |
1 |
assertEquals(15, result.getSize()); |
526 |
1 |
assertEquals(0, result.getOffset()); |
527 |
|
|
528 |
1 |
result = this.installedExtensionRepository.search("extension", 0, -1); |
529 |
|
|
530 |
1 |
assertEquals(5, result.getTotalHits()); |
531 |
1 |
assertEquals(5, result.getSize()); |
532 |
1 |
assertEquals(0, result.getOffset()); |
533 |
|
|
534 |
1 |
result = this.installedExtensionRepository.search("Extension", 0, -1); |
535 |
|
|
536 |
1 |
assertEquals(5, result.getTotalHits()); |
537 |
1 |
assertEquals(5, result.getSize()); |
538 |
1 |
assertEquals(0, result.getOffset()); |
539 |
|
|
540 |
1 |
result = this.installedExtensionRepository.search("dependency", 0, -1); |
541 |
|
|
542 |
1 |
assertEquals(8, result.getTotalHits()); |
543 |
1 |
assertEquals(8, result.getSize()); |
544 |
1 |
assertEquals(0, result.getOffset()); |
545 |
|
|
546 |
1 |
result = this.installedExtensionRepository.search(null, 0, 0); |
547 |
|
|
548 |
1 |
assertEquals(15, result.getTotalHits()); |
549 |
1 |
assertEquals(0, result.getSize()); |
550 |
1 |
assertEquals(0, result.getOffset()); |
551 |
|
|
552 |
1 |
result = this.installedExtensionRepository.search(null, 0, 2); |
553 |
|
|
554 |
1 |
assertEquals(15, result.getTotalHits()); |
555 |
1 |
assertEquals(2, result.getSize()); |
556 |
1 |
assertEquals(0, result.getOffset()); |
557 |
|
|
558 |
1 |
result = this.installedExtensionRepository.search(null, 0, 1); |
559 |
|
|
560 |
1 |
assertEquals(15, result.getTotalHits()); |
561 |
1 |
assertEquals(1, result.getSize()); |
562 |
1 |
assertEquals(0, result.getOffset()); |
563 |
|
|
564 |
1 |
result = this.installedExtensionRepository.search(null, 1, 2); |
565 |
|
|
566 |
1 |
assertEquals(15, result.getTotalHits()); |
567 |
1 |
assertEquals(2, result.getSize()); |
568 |
1 |
assertEquals(1, result.getOffset()); |
569 |
|
|
570 |
1 |
result = this.installedExtensionRepository.search(null, 2, 2); |
571 |
|
|
572 |
1 |
assertEquals(15, result.getTotalHits()); |
573 |
1 |
assertEquals(2, result.getSize()); |
574 |
1 |
assertEquals(2, result.getOffset()); |
575 |
|
|
576 |
1 |
result = this.installedExtensionRepository.search(null, -1, 2); |
577 |
|
|
578 |
1 |
assertEquals(15, result.getTotalHits()); |
579 |
1 |
assertEquals(2, result.getSize()); |
580 |
1 |
assertEquals(-1, result.getOffset()); |
581 |
|
|
582 |
1 |
result = this.installedExtensionRepository.search(null, -1, 1); |
583 |
|
|
584 |
1 |
assertEquals(15, result.getTotalHits()); |
585 |
1 |
assertEquals(1, result.getSize()); |
586 |
1 |
assertEquals(-1, result.getOffset()); |
587 |
|
} |
588 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
1PASS
|
|
589 |
1 |
@Test... |
590 |
|
public void testAdvancedSearchWithNullQuery() throws SearchException |
591 |
|
{ |
592 |
1 |
ExtensionQuery query = new ExtensionQuery(); |
593 |
|
|
594 |
1 |
query.addFilter(Extension.FIELD_ID, TestResources.INSTALLED_ID.getId(), COMPARISON.EQUAL); |
595 |
|
|
596 |
1 |
IterableResult<Extension> result = this.installedExtensionRepository.search(query); |
597 |
|
|
598 |
1 |
assertEquals(1, result.getTotalHits()); |
599 |
1 |
assertEquals(1, result.getSize()); |
600 |
1 |
assertEquals(0, result.getOffset()); |
601 |
1 |
assertEquals(TestResources.INSTALLED_ID, result.iterator().next().getId()); |
602 |
|
} |
603 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
1PASS
|
|
604 |
1 |
@Test... |
605 |
|
public void testAdvancedSearchInstalledWithNullQuery() throws SearchException |
606 |
|
{ |
607 |
1 |
ExtensionQuery query = new ExtensionQuery(); |
608 |
|
|
609 |
1 |
query.addFilter(Extension.FIELD_ID, TestResources.INSTALLED_ID.getId(), COMPARISON.EQUAL); |
610 |
|
|
611 |
1 |
IterableResult<InstalledExtension> result = |
612 |
|
this.installedExtensionRepository.searchInstalledExtensions((String) null, query); |
613 |
|
|
614 |
1 |
assertEquals(1, result.getTotalHits()); |
615 |
1 |
assertEquals(1, result.getSize()); |
616 |
1 |
assertEquals(0, result.getOffset()); |
617 |
1 |
assertEquals(TestResources.INSTALLED_ID, result.iterator().next().getId()); |
618 |
|
} |
619 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
1PASS
|
|
620 |
1 |
@Test... |
621 |
|
public void testSearchInstalledExtensions() throws SearchException |
622 |
|
{ |
623 |
|
|
624 |
1 |
IterableResult<InstalledExtension> result = |
625 |
|
this.installedExtensionRepository.searchInstalledExtensions(null, null, 0, -1); |
626 |
|
|
627 |
1 |
assertEquals(9, result.getTotalHits()); |
628 |
1 |
assertEquals(9, result.getSize()); |
629 |
1 |
assertEquals(0, result.getOffset()); |
630 |
|
|
631 |
|
|
632 |
1 |
result = this.installedExtensionRepository.searchInstalledExtensions(null, "namespace", 0, -1); |
633 |
|
|
634 |
1 |
assertEquals(13, result.getTotalHits()); |
635 |
1 |
assertEquals(13, result.getSize()); |
636 |
1 |
assertEquals(0, result.getOffset()); |
637 |
|
|
638 |
|
|
639 |
1 |
result = this.installedExtensionRepository.searchInstalledExtensions(null, "notnamespace", 0, -1); |
640 |
|
|
641 |
1 |
assertEquals(9, result.getTotalHits()); |
642 |
1 |
assertEquals(9, result.getSize()); |
643 |
1 |
assertEquals(0, result.getOffset()); |
644 |
|
} |
645 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
1PASS
|
|
646 |
1 |
@Test... |
647 |
|
public void testgetInstalledExtensionFeatureNamespace() |
648 |
|
{ |
649 |
1 |
InstalledExtension extension; |
650 |
|
|
651 |
|
|
652 |
|
|
653 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension(TestResources.INSTALLED_ID.getId(), |
654 |
|
TestResources.INSTALLED_ID.getVersion().toString()); |
655 |
|
|
656 |
1 |
assertNotNull(extension); |
657 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
658 |
|
|
659 |
|
|
660 |
|
|
661 |
1 |
extension = this.installedExtensionRepository.getInstalledExtension( |
662 |
|
TestResources.INSTALLED_ID.getId() + "-feature", TestResources.INSTALLED_ID.getVersion().toString()); |
663 |
|
|
664 |
1 |
assertNotNull(extension); |
665 |
1 |
assertEquals(TestResources.INSTALLED_ID, extension.getId()); |
666 |
|
} |
667 |
|
} |