extern crate hipchat_client; extern crate hyper; #[macro_use] extern crate serde_derive; extern crate serde; extern crate serde_json; use std::io::prelude::*; use std::fs::File; use hipchat_client::Client as HipchatClient; #[derive(Deserialize)] struct Config { token: String, origin: String, room: String, user: u64 } fn setup() -> (HipchatClient, Config) { let contents = &mut String::new(); File::open("./settings.json") .unwrap_or_else(|e| panic!("{}", e)) .read_to_string(contents) .unwrap_or_else(|e| panic!("{}", e)); let config: Config = serde_json::from_str(contents) .unwrap_or_else(|e| panic!("{}", e)); (HipchatClient::new(config.origin.clone(), config.token.clone()), config) } #[test] fn integration_get_room() { let (client, config) = setup(); let room = client.get_room(&config.room).unwrap(); println!("room: {:#?}", room); assert_eq!(room.name, config.room); } #[test] fn integration_get_rooms() { let (client, config) = setup(); let rooms = client.get_rooms(None).unwrap(); println!("rooms: {:#?}", rooms); assert!(rooms.items.iter().any(|r| r.name == config.room)); } #[test] fn integration_get_user() { let (client, config) = setup(); let user = client.get_user(&config.user.to_string()).unwrap(); println!("user: {:#?}", user); assert_eq!(user.id, config.user); } #[test] fn integration_get_users() { let (client, _) = setup(); let users = client.get_users(None).unwrap(); println!("users: {:#?}", users); } #[test] fn integration_get_private_messages() { let (client, config) = setup(); let messages = client.get_private_messages(&config.user.to_string(), None).unwrap(); println!("messages: {:#?}", messages); } #[test] fn integration_get_recent_history() { let (client, config) = setup(); let messages = client.get_recent_history(&config.room).unwrap(); println!("messages: {:#?}", messages); }