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;
20
21 import java.util.Arrays;
22 import java.util.List;
23
24 import org.eclipse.aether.DefaultRepositorySystemSession;
25 import org.eclipse.aether.impl.ArtifactResolver;
26 import org.eclipse.aether.impl.DependencyCollector;
27 import org.eclipse.aether.impl.Deployer;
28 import org.eclipse.aether.impl.Installer;
29 import org.eclipse.aether.impl.LocalRepositoryProvider;
30 import org.eclipse.aether.impl.MetadataResolver;
31 import org.eclipse.aether.impl.StubArtifactDescriptorReader;
32 import org.eclipse.aether.internal.test.util.TestUtils;
33 import org.eclipse.aether.repository.Authentication;
34 import org.eclipse.aether.repository.Proxy;
35 import org.eclipse.aether.repository.RemoteRepository;
36 import org.eclipse.aether.util.repository.AuthenticationBuilder;
37 import org.eclipse.aether.util.repository.DefaultAuthenticationSelector;
38 import org.eclipse.aether.util.repository.DefaultMirrorSelector;
39 import org.eclipse.aether.util.repository.DefaultProxySelector;
40 import org.junit.jupiter.api.BeforeEach;
41 import org.junit.jupiter.api.Test;
42
43 import static org.junit.jupiter.api.Assertions.*;
44 import static org.mockito.Mockito.mock;
45
46 public class DefaultRepositorySystemTest {
47
48 private DefaultRepositorySystem system;
49
50 private DefaultRepositorySystemSession session;
51
52 @BeforeEach
53 void init() {
54 system = new DefaultRepositorySystem(
55 new StubVersionResolver(),
56 new StubVersionRangeResolver(),
57 mock(ArtifactResolver.class),
58 mock(MetadataResolver.class),
59 new StubArtifactDescriptorReader(),
60 mock(DependencyCollector.class),
61 mock(Installer.class),
62 mock(Deployer.class),
63 mock(LocalRepositoryProvider.class),
64 new StubSyncContextFactory(),
65 new DefaultRemoteRepositoryManager(
66 new DefaultUpdatePolicyAnalyzer(), new DefaultChecksumPolicyProvider()),
67 new DefaultRepositorySystemLifecycle());
68 session = TestUtils.newSession();
69 }
70
71 @Test
72 void testNewResolutionRepositories() {
73 Proxy proxy = new Proxy("http", "localhost", 8080);
74 DefaultProxySelector proxySelector = new DefaultProxySelector();
75 proxySelector.add(proxy, null);
76 session.setProxySelector(proxySelector);
77
78 Authentication auth = new AuthenticationBuilder().addUsername("user").build();
79 DefaultAuthenticationSelector authSelector = new DefaultAuthenticationSelector();
80 authSelector.add("mirror", auth);
81 authSelector.add("test-2", auth);
82 session.setAuthenticationSelector(authSelector);
83
84 DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
85 mirrorSelector.add("mirror", "http:void", "default", false, false, "test-1", null);
86 session.setMirrorSelector(mirrorSelector);
87
88 RemoteRepository rawRepo1 = new RemoteRepository.Builder("test-1", "default", "http://void").build();
89 RemoteRepository rawRepo2 = new RemoteRepository.Builder("test-2", "default", "http://null").build();
90 List<RemoteRepository> resolveRepos =
91 system.newResolutionRepositories(session, Arrays.asList(rawRepo1, rawRepo2));
92 assertNotNull(resolveRepos);
93 assertEquals(2, resolveRepos.size());
94 RemoteRepository resolveRepo = resolveRepos.get(0);
95 assertNotNull(resolveRepo);
96 assertEquals("mirror", resolveRepo.getId());
97 assertSame(proxy, resolveRepo.getProxy());
98 assertSame(auth, resolveRepo.getAuthentication());
99 resolveRepo = resolveRepos.get(1);
100 assertNotNull(resolveRepo);
101 assertEquals("test-2", resolveRepo.getId());
102 assertSame(proxy, resolveRepo.getProxy());
103 assertSame(auth, resolveRepo.getAuthentication());
104 }
105
106 @Test
107 void testNewDeploymentRepository() {
108 Proxy proxy = new Proxy("http", "localhost", 8080);
109 DefaultProxySelector proxySelector = new DefaultProxySelector();
110 proxySelector.add(proxy, null);
111 session.setProxySelector(proxySelector);
112
113 Authentication auth = new AuthenticationBuilder().addUsername("user").build();
114 DefaultAuthenticationSelector authSelector = new DefaultAuthenticationSelector();
115 authSelector.add("test", auth);
116 session.setAuthenticationSelector(authSelector);
117
118 DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
119 mirrorSelector.add("mirror", "file:void", "default", false, false, "*", null);
120 session.setMirrorSelector(mirrorSelector);
121
122 RemoteRepository rawRepo = new RemoteRepository.Builder("test", "default", "http://void").build();
123 RemoteRepository deployRepo = system.newDeploymentRepository(session, rawRepo);
124 assertNotNull(deployRepo);
125 assertSame(proxy, deployRepo.getProxy());
126 assertSame(auth, deployRepo.getAuthentication());
127 }
128 }