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 = client.agent.services().unwrap(); assert!(services.contains_key("consul")); let members: Vec = 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> = 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 = 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"); }