use super::*;
use crate::common::test_utils::helpers::proto_response;
use crate::testdata::builders::display_groups::display_group_updated;
use crate::testdata::builders::ResponseProtoEncoder;
fn test_context() -> DecoderContext {
DecoderContext::new(176)
}
fn updated_proto_message(contract_info: &str) -> ResponseMessage {
let bytes = display_group_updated().contract_info(contract_info).encode_proto();
proto_response(IncomingMessages::DisplayGroupUpdated, bytes)
}
#[test]
fn decode_display_group_update() {
let message = updated_proto_message("265598@SMART");
let result = DisplayGroupUpdate::decode(&test_context(), &message).expect("decoding failed");
assert_eq!(result.contract_info, "265598@SMART");
}
#[test]
fn decode_display_group_update_empty() {
let message = updated_proto_message("");
let result = DisplayGroupUpdate::decode(&test_context(), &message).expect("decoding failed");
assert_eq!(result.contract_info, "");
}
#[test]
fn decode_wrong_message_type() {
let bytes = display_group_updated().contract_info("data").encode_proto();
let message = proto_response(IncomingMessages::DisplayGroupList, bytes);
let result = DisplayGroupUpdate::decode(&test_context(), &message);
assert!(result.is_err());
}
#[test]
fn cancel_message_works() {
use crate::testdata::builders::display_groups::unsubscribe_from_group_events_request;
use crate::testdata::builders::RequestEncoder;
let message = DisplayGroupUpdate::cancel_message(176, Some(9000), None).expect("cancel message failed");
assert_eq!(message, unsubscribe_from_group_events_request().request_id(9000).encode_request());
}
#[test]
fn cancel_message_no_request_id() {
let result = DisplayGroupUpdate::cancel_message(176, None, None);
assert!(result.is_err());
}