use vndb::protocol::message;
#[test]
fn simple_client_should_send_message_over_tcp() {
let get = message::request::Get {
kind: message::request::get::Type::vn(),
flags: message::request::get::Flags::new().basic().details(),
filters: message::request::get::Filters::new().filter(vndb::filter!(title ~ "Kizuna")).or(vndb::filter!(title = "Kizuna")),
options: Some(message::request::get::Options {
page: Some(1),
results: None,
sort: None,
reverse: Some(true)
})
};
let mut client = vndb::client::simple::Client::connect().expect("To connect");
client.reconnect().expect("Reconnect");
client.send(&message::request::Login::new(None).into()).expect("To send login");
client.send(&message::Request::DBstats).expect("To send DbStats");
client.send(&get.into()).expect("To send Get");
client.flush().expect("To flush");
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::Ok => println!("Ok"),
response => panic!("Unexpected response={:?}", response),
}
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::DBstats(response) => {
println!("DBstats={:?}", response);
},
response => panic!("Unexpected response={:?}", response),
}
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::Results(response) => {
println!("Get Results={:?}", response);
response.vn().expect("Parse into VN Results");
}
response => panic!("Unexpected response={:?}", response),
}
}
#[cfg(feature = "rustls-on")]
#[test]
fn simple_tls_client_should_send_message_over_tcp() {
let get = message::request::Get {
kind: message::request::get::Type::vn(),
flags: message::request::get::Flags::new().basic().details(),
filters: message::request::get::Filters::new().filter(vndb::filter!(title ~ "Kizuna")).or(vndb::filter!(title = "Kizuna")),
options: Some(message::request::get::Options {
page: Some(1),
results: None,
sort: None,
reverse: Some(true)
})
};
let mut client = vndb::client::simple::Client::connect_tls().expect("To connect");
client.reconnect_tls().expect("Reconnect");
client.send(&message::request::Login::new(None).into()).expect("To send login");
client.send(&message::Request::DBstats).expect("To send DbStats");
client.send(&get.into()).expect("To send Get");
client.flush().expect("To flush");
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::Ok => println!("Ok"),
response => panic!("Unexpected response={:?}", response),
}
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::DBstats(response) => {
println!("DBstats={:?}", response);
},
response => panic!("Unexpected response={:?}", response),
}
match client.receive().expect("To receive message").expect("To not fail receiving") {
message::Response::Results(response) => {
let results = response.vn().expect("Parse into VN Results");
println!("Get Results={:?}", results);
}
response => panic!("Unexpected response={:?}", response),
}
}