added unit tests for connect and info cmd
This commit is contained in:
parent
72d297eca6
commit
3c065781ea
|
|
@ -87,11 +87,8 @@ impl<'z> Server<'z> {
|
||||||
self.update_all_clients(new_client);
|
self.update_all_clients(new_client);
|
||||||
},
|
},
|
||||||
Commands::Info(None) => {
|
Commands::Info(None) => {
|
||||||
let mut params: HashMap<String, String> = HashMap::new();
|
let params: HashMap<String, String> = [(String::from("name"), self.name.to_string().clone()), (String::from("owner"), self.author.to_string().clone())].iter().cloned().collect();
|
||||||
params.insert(String::from("name"), self.name.to_string().clone());
|
let command = Commands::Success(Some(params));
|
||||||
params.insert(String::from("owner"), self.author.to_string().clone());
|
|
||||||
|
|
||||||
let command = Commands::Info(Some(params));
|
|
||||||
|
|
||||||
self.transmit_data(&stream, command.to_string().as_str());
|
self.transmit_data(&stream, command.to_string().as_str());
|
||||||
},
|
},
|
||||||
|
|
@ -152,3 +149,68 @@ impl<'z> Server<'z> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests{
|
||||||
|
use super::*;
|
||||||
|
use std::{thread, time};
|
||||||
|
|
||||||
|
fn spawn_server(){
|
||||||
|
thread::spawn(|| {
|
||||||
|
lazy_static!{
|
||||||
|
static ref SERVER_NAME: &'static str = "test";
|
||||||
|
static ref SERVER_ADDRESS: &'static str = "0.0.0.0:6000";
|
||||||
|
static ref SERVER_AUTHOR: &'static str = "test";
|
||||||
|
static ref SERVER: Server<'static> = Server::new(&SERVER_NAME, &SERVER_ADDRESS, &SERVER_AUTHOR);
|
||||||
|
}
|
||||||
|
SERVER.start();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_connect_command(){
|
||||||
|
let mut buffer = [0; 1024];
|
||||||
|
|
||||||
|
spawn_server();
|
||||||
|
|
||||||
|
let millis = time::Duration::from_millis(2000);
|
||||||
|
thread::sleep(millis);
|
||||||
|
|
||||||
|
let mut stream = TcpStream::connect("0.0.0.0:6000").unwrap();
|
||||||
|
|
||||||
|
stream.read(&mut buffer).unwrap();
|
||||||
|
let mut command = Commands::from(&buffer);
|
||||||
|
|
||||||
|
let msg = b"!connect: uuid:123456-1234-1234-123456 name:\"alice\" host:\"127.0.0.1\"";
|
||||||
|
stream.write(msg).unwrap();
|
||||||
|
|
||||||
|
stream.read(&mut buffer).unwrap();
|
||||||
|
command = Commands::from(&buffer);
|
||||||
|
|
||||||
|
assert_eq!(command, Commands::Success(None));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_info_command(){
|
||||||
|
let mut buffer = [0; 1024];
|
||||||
|
|
||||||
|
spawn_server();
|
||||||
|
|
||||||
|
let millis = time::Duration::from_millis(2000);
|
||||||
|
thread::sleep(millis);
|
||||||
|
|
||||||
|
let mut stream = TcpStream::connect("0.0.0.0:6000").unwrap();
|
||||||
|
|
||||||
|
stream.read(&mut buffer).unwrap();
|
||||||
|
let mut command = Commands::from(&buffer);
|
||||||
|
|
||||||
|
let msg = b"!info:";
|
||||||
|
stream.write(msg).unwrap();
|
||||||
|
|
||||||
|
stream.read(&mut buffer).unwrap();
|
||||||
|
command = Commands::from(&buffer);
|
||||||
|
|
||||||
|
let params: HashMap<String, String> = [(String::from("name"), String::from("test")), (String::from("owner"), String::from("test"))].iter().cloned().collect();
|
||||||
|
assert_eq!(command, Commands::Success(Some(params)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue