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