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