MCPcopy Create free account
hub / github.com/apache/fory / test_integer

Function test_integer

rust/tests/tests/test_cross_language.rs:608–670  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

606#[test]
607#[ignore]
608fn test_integer() {
609 // In xlang mode with nullable=false default:
610 // - Java int fields -> Rust i32 (no ref flag)
611 // - Java Integer fields (with nullable=false) -> Rust i32 (no ref flag)
612 // All fields use i32 because Java xlang mode defaults to nullable=false for all non-primitives
613 #[derive(ForyStruct, Debug, PartialEq)]
614 #[fory(debug)]
615 struct Item2 {
616 f1: i32,
617 f2: i32,
618 f3: i32,
619 f4: i32,
620 f5: i32,
621 f6: i32,
622 }
623
624 let data_file_path = get_data_file();
625 let bytes = fs::read(&data_file_path).unwrap();
626
627 let mut fory = Fory::builder().compatible(true).xlang(true).build();
628 fory.register::<Item2>(101).unwrap();
629 let mut reader = Reader::new(bytes.as_slice());
630 let f1 = 1;
631 let f2 = 2;
632 let f3 = 3;
633 let f4 = 4;
634 let f5 = 0;
635 let f6 = 0;
636
637 let local_item2 = Item2 {
638 f1,
639 f2,
640 f3,
641 f4,
642 f5,
643 f6,
644 };
645 let remote_item2: Item2 = fory.deserialize_from(&mut reader).unwrap();
646 assert_eq!(remote_item2, local_item2);
647 // When deserializing standalone values, they're serialized with ref flag
648 let remote_f1: i32 = fory.deserialize_from(&mut reader).unwrap();
649 assert_eq!(remote_f1, f1);
650 let remote_f2: i32 = fory.deserialize_from(&mut reader).unwrap();
651 assert_eq!(remote_f2, f2);
652 let remote_f3: i32 = fory.deserialize_from(&mut reader).unwrap();
653 assert_eq!(remote_f3, f3);
654 let remote_f4: i32 = fory.deserialize_from(&mut reader).unwrap();
655 assert_eq!(remote_f4, f4);
656 let remote_f5: i32 = fory.deserialize_from(&mut reader).unwrap();
657 assert_eq!(remote_f5, f5);
658 let remote_f6: i32 = fory.deserialize_from(&mut reader).unwrap();
659 assert_eq!(remote_f6, f6);
660
661 let mut buf = Vec::new();
662 fory.serialize_to(&mut buf, &remote_item2).unwrap();
663 fory.serialize_to(&mut buf, &remote_f1).unwrap();
664 fory.serialize_to(&mut buf, &remote_f2).unwrap();
665 fory.serialize_to(&mut buf, &remote_f3).unwrap();

Callers

nothing calls this directly

Calls 9

deserialize_fromMethod · 0.80
get_data_fileFunction · 0.70
readFunction · 0.50
writeFunction · 0.50
unwrapMethod · 0.45
buildMethod · 0.45
xlangMethod · 0.45
compatibleMethod · 0.45
serialize_toMethod · 0.45

Tested by

no test coverage detected