extern crate consul;
extern crate serde;
extern crate serde_json;
use std::collections::HashMap;
#[test]
pub fn test_agent() {
let client = consul::Client::new("http://127.0.0.1:8500");
let services: HashMap<String, consul::Service> = client.agent.services().unwrap();
assert!(services.contains_key("consul"));
let members: Vec<consul::AgentMember> = client.agent.members().unwrap();
assert!(!members.is_empty());
println!("Members: {}", serde_json::to_string(&members).unwrap())
}
#[test]
pub fn test_catalog() {
let client = consul::Client::new("http://127.0.0.1:8500");
let map: HashMap<String, Vec<String>> = client.catalog.services().unwrap();
assert!(map.contains_key("consul"));
}
#[test]
pub fn test_health() {
let client = consul::Client::new("http://127.0.0.1:8500");
let list: Vec<consul::HealthService> = client.health.service("consul", None).unwrap();
assert!(!list.is_empty());
println!("Consul nodes: {}", serde_json::to_string(&list).unwrap());
}
#[test]
pub fn test_register_service() {
let client = consul::Client::new("http://127.0.0.1:8500");
let service = consul::RegisterService {
ID: "test-id".to_string(),
Name: "test-service".to_string(),
Tags: [].to_vec(),
Port: 8080,
Address: "localhost".to_string()
};
let register_result = client.agent.register(service).unwrap();
assert_eq!(register_result,());
assert_eq!(client.agent.services().unwrap().get("test-id").unwrap().Address, "localhost")
}
#[test]
pub fn test_put_value() {
let ks = consul::Keystore::new("http://127.0.0.1:8500");
let key: String = "foo".to_string();
let value: String = "var".to_string();
let result = ks.set_key(key.clone(), value);
assert!(result.is_ok());
let result = ks.get_key(key).unwrap().unwrap();
assert_eq!(result, "dmFy");
}