forked from aeron-io/simple-binary-encoding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathissue_435_test.rs
More file actions
37 lines (31 loc) · 1.26 KB
/
Copy pathissue_435_test.rs
File metadata and controls
37 lines (31 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use ::issue_435::*;
fn create_encoder(buffer: &mut Vec<u8>) -> Issue435Encoder {
let issue_435 = Issue435Encoder::default().wrap(
WriteBuf::new(buffer.as_mut_slice()),
message_header::ENCODED_LENGTH,
);
let mut header = issue_435.header(0);
header.s(*SetRef::default().set_one(true));
header.parent().unwrap()
}
#[test]
fn issue_435_ref_test() -> SbeResult<()> {
assert_eq!(9, message_header::ENCODED_LENGTH);
assert_eq!(1, issue_435::SBE_BLOCK_LENGTH);
assert_eq!(0, issue_435::SBE_SCHEMA_VERSION);
// encode...
let mut buffer = vec![0u8; 256];
let encoder = create_encoder(&mut buffer);
encoder.example_encoder().e(EnumRef::Two);
// decode...
let buf = ReadBuf::new(buffer.as_slice());
let header = MessageHeaderDecoder::default().wrap(buf, 0);
assert_eq!(issue_435::SBE_BLOCK_LENGTH, header.block_length());
assert_eq!(issue_435::SBE_SCHEMA_VERSION, header.version());
assert_eq!(issue_435::SBE_TEMPLATE_ID, header.template_id());
assert_eq!(issue_435::SBE_SCHEMA_ID, header.schema_id());
assert_eq!(*SetRef::default().set_one(true), header.s());
let decoder = Issue435Decoder::default().header(header);
assert_eq!(EnumRef::Two, decoder.example_decoder().e());
Ok(())
}