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 org.eclipse.aether.DefaultRepositorySystemSession;
22 import org.eclipse.aether.RepositorySystemSession;
23 import org.eclipse.aether.repository.RemoteRepository;
24 import org.eclipse.aether.transfer.RepositoryOfflineException;
25 import org.junit.Before;
26 import org.junit.Test;
27
28 public class DefaultOfflineControllerTest {
29
30 private DefaultOfflineController controller;
31
32 private RepositorySystemSession newSession(boolean offline, String protocols, String hosts) {
33 DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
34 session.setOffline(offline);
35 session.setConfigProperty(DefaultOfflineController.CONFIG_PROP_OFFLINE_PROTOCOLS, protocols);
36 session.setConfigProperty(DefaultOfflineController.CONFIG_PROP_OFFLINE_HOSTS, hosts);
37 return session;
38 }
39
40 private RemoteRepository newRepo(String url) {
41 return new RemoteRepository.Builder("central", "default", url).build();
42 }
43
44 @Before
45 public void setup() {
46 controller = new DefaultOfflineController();
47 }
48
49 @Test(expected = RepositoryOfflineException.class)
50 public void testCheckOffline_Online() throws Exception {
51 controller.checkOffline(newSession(false, null, null), newRepo("http://eclipse.org"));
52 }
53
54 @Test(expected = RepositoryOfflineException.class)
55 public void testCheckOffline_Offline() throws Exception {
56 controller.checkOffline(newSession(true, null, null), newRepo("http://eclipse.org"));
57 }
58
59 @Test
60 public void testCheckOffline_Offline_OfflineProtocol() throws Exception {
61 controller.checkOffline(newSession(true, "file", null), newRepo("file://repo"));
62 controller.checkOffline(newSession(true, "file", null), newRepo("FILE://repo"));
63 controller.checkOffline(newSession(true, " file , classpath ", null), newRepo("file://repo"));
64 controller.checkOffline(newSession(true, " file , classpath ", null), newRepo("classpath://repo"));
65 }
66
67 @Test(expected = RepositoryOfflineException.class)
68 public void testCheckOffline_Offline_OnlineProtocol() throws Exception {
69 controller.checkOffline(newSession(true, "file", null), newRepo("http://eclipse.org"));
70 }
71
72 @Test
73 public void testCheckOffline_Offline_OfflineHost() throws Exception {
74 controller.checkOffline(newSession(true, null, "localhost"), newRepo("http://localhost"));
75 controller.checkOffline(newSession(true, null, "localhost"), newRepo("http://LOCALHOST"));
76 controller.checkOffline(newSession(true, null, " localhost , 127.0.0.1 "), newRepo("http://localhost"));
77 controller.checkOffline(newSession(true, null, " localhost , 127.0.0.1 "), newRepo("http://127.0.0.1"));
78 }
79
80 @Test(expected = RepositoryOfflineException.class)
81 public void testCheckOffline_Offline_OnlineHost() throws Exception {
82 controller.checkOffline(newSession(true, null, "localhost"), newRepo("http://eclipse.org"));
83 }
84 }