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  }