1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.impl;
20
21 import java.util.Arrays;
22 import java.util.List;
23
24 import org.eclipse.aether.RepositorySystem;
25 import org.eclipse.aether.spi.locator.Service;
26 import org.eclipse.aether.spi.locator.ServiceLocator;
27 import org.junit.Test;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.fail;
32
33
34
35 public class DefaultServiceLocatorTest {
36
37 @Test
38 public void testGetRepositorySystem() {
39 DefaultServiceLocator locator = new DefaultServiceLocator();
40 locator.addService(ArtifactDescriptorReader.class, StubArtifactDescriptorReader.class);
41 locator.addService(VersionResolver.class, StubVersionResolver.class);
42 locator.addService(VersionRangeResolver.class, StubVersionRangeResolver.class);
43
44 RepositorySystem repoSys = locator.getService(RepositorySystem.class);
45 assertNotNull(repoSys);
46 }
47
48 @Test
49 public void testGetServicesUnmodifiable() {
50 DefaultServiceLocator locator = new DefaultServiceLocator();
51 locator.setServices(String.class, "one", "two");
52 List<String> services = locator.getServices(String.class);
53 assertNotNull(services);
54 try {
55 services.set(0, "fail");
56 fail("service list is modifable");
57 } catch (UnsupportedOperationException e) {
58
59 }
60 }
61
62 @Test
63 public void testSetInstancesAddClass() {
64 DefaultServiceLocator locator = new DefaultServiceLocator();
65 locator.setServices(String.class, "one", "two");
66 locator.addService(String.class, String.class);
67 assertEquals(Arrays.asList("one", "two", ""), locator.getServices(String.class));
68 }
69
70 @Test
71 public void testInitService() {
72 DefaultServiceLocator locator = new DefaultServiceLocator();
73 locator.setService(DummyService.class, DummyService.class);
74 DummyService service = locator.getService(DummyService.class);
75 assertNotNull(service);
76 assertNotNull(service.locator);
77 }
78
79 private static class DummyService implements Service {
80
81 ServiceLocator locator;
82
83 public void initService(ServiceLocator locator) {
84 this.locator = locator;
85 }
86 }
87 }