include!(concat!(env!("OUT_DIR"), "/courierust_generated.rs"));
#[cfg(test)]
mod tests {
use super::helloworld::{Greeter, HelloReply, HelloRequest};
use crate::courierust_grpc::codec::{DecodeMessage, EncodeMessage};
#[test]
fn generated_message_wire_round_trip() {
let mut request = HelloRequest {
name: "abc".into(),
..Default::default()
};
request.tags.push("xyz".into());
let bytes = request.encode_message().unwrap();
assert_eq!(
bytes,
vec![
0x0a, 0x03, 0x61, 0x62, 0x63, 0x12, 0x03, 0x78, 0x79, 0x7a, ]
);
let decoded = HelloRequest::decode_message(&bytes).unwrap();
assert_eq!(decoded, request);
let reply = HelloReply {
message: "hi".into(),
count: 7,
};
let bytes = reply.encode_message().unwrap();
assert_eq!(
bytes,
vec![
0x0a, 0x02, 0x68, 0x69, 0x10, 0x07, ]
);
assert_eq!(HelloReply::decode_message(&bytes).unwrap(), reply);
}
#[test]
fn generated_message_skips_unknown_fields() {
let mut wire = Vec::new();
crate::courierust_grpc::proto::Encoder::string(&mut wire, 99, "unknown");
crate::courierust_grpc::proto::Encoder::string(&mut wire, 1, "known");
let decoded = HelloRequest::decode_message(&wire).unwrap();
assert_eq!(decoded.name, "known");
assert!(decoded.tags.is_empty());
}
#[test]
fn generated_service_stub_paths() {
let stub =
Greeter::new(crate::courierust_grpc::GrpcClient::new("http://127.0.0.1:1").unwrap());
assert_eq!(stub.service_path(), "/helloworld.Greeter");
let _ = stub.say_hello(HelloRequest::default());
let _ = stub.watch(HelloRequest::default());
}
}