View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.repository;
20  
21  import java.util.ArrayList;
22  import java.util.Arrays;
23  import java.util.List;
24  import java.util.Map;
25  
26  import org.eclipse.aether.repository.RemoteRepository.Builder;
27  import org.junit.Before;
28  import org.junit.Test;
29  
30  import static org.junit.Assert.*;
31  
32  public class RemoteRepositoryBuilderTest {
33  
34      private RemoteRepository prototype;
35  
36      @Before
37      public void init() {
38          prototype = new Builder("id", "type", "file:void").build();
39      }
40  
41      @Test
42      public void testReusePrototype() {
43          Builder builder = new Builder(prototype);
44          assertSame(prototype, builder.build());
45      }
46  
47      @Test(expected = NullPointerException.class)
48      public void testPrototypeMandatory() {
49          new Builder(null);
50      }
51  
52      @Test
53      public void testSetId() {
54          Builder builder = new Builder(prototype);
55          RemoteRepository repo = builder.setId(prototype.getId()).build();
56          assertSame(prototype, repo);
57          repo = builder.setId("new-id").build();
58          assertEquals("new-id", repo.getId());
59      }
60  
61      @Test
62      public void testSetContentType() {
63          Builder builder = new Builder(prototype);
64          RemoteRepository repo =
65                  builder.setContentType(prototype.getContentType()).build();
66          assertSame(prototype, repo);
67          repo = builder.setContentType("new-type").build();
68          assertEquals("new-type", repo.getContentType());
69      }
70  
71      @Test
72      public void testSetUrl() {
73          Builder builder = new Builder(prototype);
74          RemoteRepository repo = builder.setUrl(prototype.getUrl()).build();
75          assertSame(prototype, repo);
76          repo = builder.setUrl("file:new").build();
77          assertEquals("file:new", repo.getUrl());
78      }
79  
80      @Test
81      public void testSetPolicy() {
82          Builder builder = new Builder(prototype);
83          RemoteRepository repo = builder.setPolicy(prototype.getPolicy(false)).build();
84          assertSame(prototype, repo);
85          RepositoryPolicy policy = new RepositoryPolicy(true, "never", "fail");
86          repo = builder.setPolicy(policy).build();
87          assertEquals(policy, repo.getPolicy(true));
88          assertEquals(policy, repo.getPolicy(false));
89      }
90  
91      @Test
92      public void testSetReleasePolicy() {
93          Builder builder = new Builder(prototype);
94          RemoteRepository repo =
95                  builder.setReleasePolicy(prototype.getPolicy(false)).build();
96          assertSame(prototype, repo);
97          RepositoryPolicy policy = new RepositoryPolicy(true, "never", "fail");
98          repo = builder.setReleasePolicy(policy).build();
99          assertEquals(policy, repo.getPolicy(false));
100         assertEquals(prototype.getPolicy(true), repo.getPolicy(true));
101     }
102 
103     @Test
104     public void testSetSnapshotPolicy() {
105         Builder builder = new Builder(prototype);
106         RemoteRepository repo =
107                 builder.setSnapshotPolicy(prototype.getPolicy(true)).build();
108         assertSame(prototype, repo);
109         RepositoryPolicy policy = new RepositoryPolicy(true, "never", "fail");
110         repo = builder.setSnapshotPolicy(policy).build();
111         assertEquals(policy, repo.getPolicy(true));
112         assertEquals(prototype.getPolicy(false), repo.getPolicy(false));
113     }
114 
115     @Test
116     public void testSetProxy() {
117         Builder builder = new Builder(prototype);
118         RemoteRepository repo = builder.setProxy(prototype.getProxy()).build();
119         assertSame(prototype, repo);
120         Proxy proxy = new Proxy("http", "localhost", 8080);
121         repo = builder.setProxy(proxy).build();
122         assertEquals(proxy, repo.getProxy());
123     }
124 
125     @Test
126     public void testSetAuthentication() {
127         Builder builder = new Builder(prototype);
128         RemoteRepository repo =
129                 builder.setAuthentication(prototype.getAuthentication()).build();
130         assertSame(prototype, repo);
131         Authentication auth = new Authentication() {
132             public void fill(AuthenticationContext context, String key, Map<String, String> data) {}
133 
134             public void digest(AuthenticationDigest digest) {}
135         };
136         repo = builder.setAuthentication(auth).build();
137         assertEquals(auth, repo.getAuthentication());
138     }
139 
140     @Test
141     public void testSetMirroredRepositories() {
142         Builder builder = new Builder(prototype);
143         RemoteRepository repo = builder.setMirroredRepositories(prototype.getMirroredRepositories())
144                 .build();
145         assertSame(prototype, repo);
146         List<RemoteRepository> mirrored = new ArrayList<>(Arrays.asList(repo));
147         repo = builder.setMirroredRepositories(mirrored).build();
148         assertEquals(mirrored, repo.getMirroredRepositories());
149     }
150 
151     @Test
152     public void testAddMirroredRepository() {
153         Builder builder = new Builder(prototype);
154         RemoteRepository repo = builder.addMirroredRepository(null).build();
155         assertSame(prototype, repo);
156         repo = builder.addMirroredRepository(prototype).build();
157         assertEquals(Arrays.asList(prototype), repo.getMirroredRepositories());
158     }
159 
160     @Test
161     public void testSetRepositoryManager() {
162         Builder builder = new Builder(prototype);
163         RemoteRepository repo =
164                 builder.setRepositoryManager(prototype.isRepositoryManager()).build();
165         assertSame(prototype, repo);
166         repo = builder.setRepositoryManager(!prototype.isRepositoryManager()).build();
167         assertEquals(!prototype.isRepositoryManager(), repo.isRepositoryManager());
168     }
169 }