1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
use reqwest::{Client, IntoUrl, Method, RequestBuilder, Url};
use super::super::Result;
use super::AuthMethod;
#[derive(Clone, Debug)]
pub struct NoAuth {
client: Client,
endpoint: Url
}
impl NoAuth {
pub fn new<U>(endpoint: U) -> Result<NoAuth> where U: IntoUrl {
Ok(NoAuth {
client: Client::new(),
endpoint: endpoint.into_url()?
})
}
}
impl AuthMethod for NoAuth {
fn request(&self, method: Method, url: Url) -> Result<RequestBuilder> {
Ok(self.client.request(method, url))
}
fn get_endpoint(&self, _service_type: String,
_endpoint_interface: Option<String>) -> Result<Url> {
Ok(self.endpoint.clone())
}
fn refresh(&mut self) -> Result<()> { Ok(()) }
}
#[cfg(test)]
pub mod test {
#![allow(unused_results)]
use super::super::AuthMethod;
use super::NoAuth;
#[test]
fn test_noauth_new() {
let a = NoAuth::new("http://127.0.0.1:8080/v1").unwrap();
let e = a.endpoint;
assert_eq!(e.scheme(), "http");
assert_eq!(e.host_str().unwrap(), "127.0.0.1");
assert_eq!(e.port().unwrap(), 8080u16);
assert_eq!(e.path(), "/v1");
}
#[test]
fn test_noauth_new_fail() {
NoAuth::new("foo bar").err().unwrap();
}
#[test]
fn test_noauth_get_endpoint() {
let a = NoAuth::new("http://127.0.0.1:8080/v1").unwrap();
let e = a.get_endpoint(String::from("foobar"), None).unwrap();
assert_eq!(e.scheme(), "http");
assert_eq!(e.host_str().unwrap(), "127.0.0.1");
assert_eq!(e.port().unwrap(), 8080u16);
assert_eq!(e.path(), "/v1");
}
}